详解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 相关文章推荐
第八节 访问方式 [8]
Oct 09 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
PHP可变函数学习小结
Nov 29 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP getDocNamespaces()函数讲解
Feb 03 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中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
分享php分页的功能模块
2015/06/16 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python输入中文的实例方法
2020/09/14 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
护理专业学生的求职信范文
2013/12/11 职场文书
求职自荐信
2013/12/14 职场文书
大学团支书的自我评价分享
2013/12/14 职场文书
运动会稿件300字
2014/02/14 职场文书
工伤赔偿协议书
2014/04/15 职场文书
医院标语大全
2014/06/23 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
借条如何写
2015/05/26 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
世界十大狙击步枪排行榜
2022/03/20 杂记
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技