详解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 删除记录同时删除图片文件的实现代码
May 12 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php中in_array函数用法分析
Nov 15 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
Yii数据库缓存实例分析
Mar 29 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 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
多重?l件?合查?(一)
2006/10/09 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
实例讲解Python中的私有属性
2014/08/21 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python 登录网站详解及实例
2017/04/11 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
python之消除前缀重命名的方法
2018/10/21 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
python 项目目录结构设置
2020/02/14 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
高三英语教学反思
2014/01/13 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
环保宣传标语
2014/06/12 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
离婚被告答辩状
2015/05/22 职场文书
小程序自定义轮播图圆点组件
2022/06/25 Javascript
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript