详解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 相关文章推荐
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
PHP中读取照片exif信息的方法
Aug 20 PHP
PHP正则验证Email的方法
Jun 15 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 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
PHP7.3.10编译安装教程
2019/10/08 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
原生js实现验证码功能
2017/03/16 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python实现在线音乐播放器
2017/03/03 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python3 读取Word文件方式
2020/02/13 Python
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
程序员求职信
2014/04/16 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
爱祖国演讲稿
2014/05/04 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
优秀团员自我评价
2015/03/10 职场文书
绿色环保倡议书
2015/04/28 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
Python 实现Mac 屏幕截图详解
2021/10/05 Python