详解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与SQL注入攻击[一]
Apr 17 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
php猴子选大王问题解决方法
May 12 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
PHP多进程编程实例详解
Jul 19 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
使用laravel指定日志文件记录任意日志
Oct 17 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
PHP4.04简明安装
2006/10/09 PHP
PHP 组件化编程技巧
2009/06/06 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python图算法实例分析
2016/08/13 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
大学活动总结范文
2014/04/29 职场文书
2014年党课学习材料
2014/05/11 职场文书
入职担保书怎么写
2014/05/12 职场文书
个人担保书范文
2014/05/20 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
2014年实习期工作总结
2014/11/27 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
学校证明范文
2015/06/24 职场文书
小学大队委竞选口号
2015/12/25 职场文书