详解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 CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
yii框架搜索分页modle写法
Dec 19 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
php时间戳转换代码详解
Aug 04 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
Bootstrap table使用方法记录
2017/08/23 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Python基础学习之常见的内建函数整理
2017/09/06 Python
使用Python写一个小游戏
2018/04/02 Python
python实现多人聊天室
2020/03/31 Python
Python线程同步的实现代码
2018/10/03 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
django admin组件使用方法详解
2019/07/19 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
自主招生自荐信格式
2013/12/03 职场文书
先进集体获奖感言
2014/02/13 职场文书
学校安全责任书
2014/04/14 职场文书
环保小标语
2014/06/13 职场文书
激励员工的口号
2014/06/16 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
教师考核鉴定意见
2015/06/05 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers