详解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 替换模板变量实现步骤
Aug 24 PHP
php中计算时间差的几种方法
Dec 31 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
php eval函数一句话木马代码
May 21 PHP
PHP在线书签系统分享
Jan 04 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
TP5框架请求响应参数实例分析
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
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
JavaScript基本编码模式小结
2012/05/23 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
Vue指令指令大全
2019/02/09 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python自定义类并使用的方法
2015/05/07 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
英国门把手公司:Door Handle Company
2019/05/12 全球购物
电子邮箱格式怎么写
2014/01/12 职场文书
企业给企业的表扬信
2014/01/13 职场文书
法律进机关实施方案
2014/03/12 职场文书
项目合作协议书
2014/09/23 职场文书
2014个人年度工作总结
2014/12/15 职场文书
岳庙导游词
2015/02/04 职场文书