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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
php分页示例代码
Mar 19 PHP
FireFox浏览器使用Javascript上传大文件
Oct 30 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP中soap的用法实例
Oct 24 PHP
10个简化PHP开发的工具
Dec 25 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
CI框架整合smarty步骤详解
May 19 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 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
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
给海归自荐信的建议
2013/12/13 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
法律进学校实施方案
2014/03/15 职场文书
给公司的建议书范文
2014/05/13 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书