详解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
php读取html并截取字符串的简单代码
Nov 30 PHP
php 字符串函数收集
Mar 29 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
php中Snoopy类用法实例
Jun 19 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP实现的简单sha1加密功能示例
Aug 27 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
PHP单元测试配置与使用方法详解
Dec 27 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
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP数据类型的总结分析
2013/06/13 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
jquery easyui使用心得
2014/07/07 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
angular实现IM聊天图片发送实例
2017/05/08 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
浅谈Python里面小数点精度的控制
2018/07/16 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
阿巴庭院:Abba Patio
2019/06/18 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers