详解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 include加载文件两种方式效率比较
Aug 08 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
Laravel5中Cookie的使用详解
May 03 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
php+laravel 扫码二维码签到功能
May 15 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 mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
Python语言描述连续子数组的最大和
2018/01/04 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
三年级数学教学反思
2014/01/31 职场文书
园艺师求职信
2014/04/27 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang