php 转换字符串编码 iconv与mb_convert_encoding的区别说明


Posted in PHP onNovember 10, 2011

iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)

用法:
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉

string iconv ( string in_charset, string out_charset, string str )
注意:
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,
其中:
//TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
Returns the converted string or FALSE on failure.

使用:
1. 发现iconv在转换字符"-"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这

个"-"都无法转换成功,无法输出。另外mb_convert_encoding没有这个bug.
2. mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;如:$str =

mb_convert_encoding($str,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF- 8");“ASCII,JIS,EUC-JP,SJIS,UTF-8”的顺序不同效果也有

差异
3. 一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数

.
from_encoding is specified by character code name before conversion. it can be array or string - comma separated

enumerated list. If it is not specified, the internal encoding will be used.

$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

$str = mb_convert_encoding($str, "EUC-JP', "auto");

例子:
$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8", "GBK");

PHP 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP 文件上传全攻略
Apr 28 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
关于svn冲突的解决方法
Jun 21 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 #PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 #PHP
PHP中其实也可以用方法链
Nov 10 #PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 #PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 #PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 #PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 #PHP
You might like
mayfish 数据入库验证代码
2010/04/30 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
js 学习笔记(三)
2009/12/29 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
js实现消息滚动效果
2017/01/18 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
Python中的zipfile模块使用详解
2015/06/25 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
介绍Java的内部类
2012/10/27 面试题
怎么写好自荐书
2014/03/02 职场文书
财务会计岗位职责
2015/02/03 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
微信小程序实现聊天室功能
2021/06/14 Javascript