详解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 相关文章推荐
如何在WIN2K下安装PHP4.04
Oct 09 PHP
PHP生成月历代码
Jun 14 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 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
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python读取Excel的方法实例分析
2015/07/11 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
python 星号(*)的多种用途
2020/09/21 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
新闻编辑自荐信
2013/11/03 职场文书
销售文员的岗位职责
2013/11/20 职场文书
自我鉴定书面格式
2014/01/13 职场文书
优秀老师事迹材料
2014/02/05 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
销售活动策划方案
2014/08/26 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
个人四风问题整改措施
2014/10/24 职场文书
2016新年慰问信范文
2015/03/25 职场文书
收入证明申请书
2015/06/12 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
提升Nginx性能的一些建议
2021/03/31 Servers
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers
js前端图片加载异常兜底方案
2022/06/21 Javascript