详解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 相关文章推荐
1.PHP简介
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
Yii使用技巧大汇总
Dec 29 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
Yii2语言国际化自动配置详解
Aug 22 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
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PHP实现的策略模式示例
2019/03/20 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
如何开发出更好的JavaScript模块
2017/12/22 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python 美化输出信息的实例
2018/10/15 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
举例讲解Python装饰器
2020/12/24 Python
中学生爱国演讲稿
2013/12/31 职场文书
教师节演讲稿
2014/05/06 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers
一起来学习Python的元组和列表
2022/03/13 Python
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技