详解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 危险函数解释 分析
Apr 22 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
php代码检查代理ip的有效性
Aug 19 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
django 2.0更新的10条注意事项总结
2018/01/05 Python
替换python字典中的key值方法
2018/07/06 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
学生发电厂实习自我鉴定
2013/09/22 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
教师节标语大全
2014/10/07 职场文书
三方股东合作协议书
2014/10/28 职场文书
护士个人年终总结
2015/02/13 职场文书
工程合作意向书范本
2015/05/09 职场文书
工会经费申请报告
2015/05/15 职场文书
教师节晚会主持词
2015/06/30 职场文书
聘任书范文大全
2015/09/21 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript