详解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下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
比较strtr, str_replace和preg_replace三个函数的效率
Jun 26 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP实现远程下载文件到本地
May 17 PHP
提高php编程效率技巧
Aug 13 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
php异常处理捕获错误整理
Sep 23 PHP
php下的原生ajax请求用法实例分析
Feb 28 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之第八天
2006/10/09 PHP
PHP5 面向对象程序设计
2008/02/13 PHP
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
说一说Python logging
2016/04/15 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python for循环remove同一个list过程解析
2019/08/14 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
为什么说python更适合树莓派编程
2020/07/20 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
毕业典礼主持词大全
2014/03/26 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
Redis主从复制操作和配置详情
2022/09/23 Redis