详解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编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP开发API接口签名生成及验证操作示例
May 27 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
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python 实现归并排序算法
2012/06/05 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
django允许外部访问的实例讲解
2018/05/14 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
python解析xml简单示例
2019/06/21 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
花坛标语大全
2014/06/30 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python