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 相关文章推荐
php获取数组长度的方法(有实例)
Oct 27 PHP
php查找字符串出现次数的方法
Dec 01 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
Yii框架上传图片用法总结
Mar 28 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 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
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php实现图片添加水印功能
2014/02/13 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
初识Laravel
2014/10/30 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
Python实现的简单算术游戏实例
2015/05/26 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
银行员工职业规划范文
2014/01/21 职场文书
给实习单位的感谢信
2014/02/01 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
小学生成绩单评语
2014/12/31 职场文书
大学生团日活动总结
2015/05/06 职场文书
婚姻出轨保证书
2015/05/08 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android