详解PHP编码转换函数应用技巧


Posted in PHP onOctober 22, 2016

在PHP中有数量庞大的函数来支持我们的需求应用。下面介绍的这个函数就是有关PHP编码转换函数。希望对大家有所帮助。mb_convert_encoding 函数为PHP内部多字节字符串编码转换函数。

可以在有需要的使用场合(如:解决在GB2312编码环境下使用Ajax产生的中文字乱码的问题)方便进行编码转换,以解决网页乱码的问题,使用非常方便,效率非常高,几乎支持所有编码。PHP 4 >= 4.0.6、PHP 5 版本支持。

PHP编码转换函数原型:

/** 
* 多字节字符串编码转换函数 

* @param string str 需要进行编码转换的字符串 
* @param string to_encoding 指定转换为某种编码
,如:gb2312、gbk、utf-8等 
* @param mixed from_encoding 混合指定原来字串的编码
,如:同时指定 JIS, eucjp-win, sjis-win 混合编码 
* @return string 
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 

PHP编码转换函数使用举例:

1、把 GBK 编码字串转换成 UTF-8 编码字串

< ?PHP  
header("content-Type: text/html; 
charset=Utf-8");  
echo mb_convert_encoding("
你是我的好朋友", "UTF-8", "GBK");  
?>

2、把 UTF-8 编码字串转换成 GB2312 编码字串

// 注意将此文件存盘成 utf-8 
编码格式文件再测试  
< ?PHP  
header("content-Type: text/html; 
charset=gb2312");  
echo mb_convert_encoding("
你是我的好朋友", "gb312", "utf-8");  
?>

3、对整个页面进行转换

该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。

在PHP文件的头部加上下面三行代码:

mb_internal_encoding("gb2312");  
// 这里的gb2312是你网站原来的编码  
mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');

使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。

如果没有没有开启PHP的mbstring扩展,则需要做如下设置,让PHP支持该扩展。

1、windows 服务器环境

编辑 PHP.ini 文件,将; extension=PHP_mbstring.dll 前面的 ; 去掉,重启网页服务器。

2、Linux服务器环境

在编译配置时加入 --enable-mbstring=cn 编译参数,再进行PHP的编译安装。

结束语:

如果大家在使用PHP编码转换函数的过程中,还有什么无法明白的地方,可以参看《PHP手册》。

PHP 相关文章推荐
虚拟主机中对PHP的特殊设置
Oct 09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
php自动获取关键字的方法
Jan 06 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PHP生成短网址方法汇总
Jul 12 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 #PHP
PHP实现多关键字加亮功能
Oct 21 #PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 #PHP
PHP与服务器文件系统的简单交互
Oct 21 #PHP
微信公众号开发客服接口实例代码
Oct 21 #PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 #PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 #PHP
You might like
对Session和Cookie的区分与解释
2007/03/16 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
用python实现学生管理系统
2020/07/24 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
2014年教师培训的自我评价
2014/01/03 职场文书
活动总结范文
2014/08/30 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
八年级英语教学反思
2016/02/15 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书