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编实现程动态图像的创建代码
Sep 28 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
laravel5.1框架model类查询的实现方法
Oct 08 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python 的类、继承和多态详解
2017/07/16 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
详解HTML5新增标签
2017/11/27 HTML / CSS
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
init进程的作用
2012/04/12 面试题
会计实习期自我鉴定
2013/10/06 职场文书
校园新闻广播稿
2014/01/10 职场文书
通用自荐信范文
2014/03/14 职场文书
环保小标语
2014/06/13 职场文书
应届生面试求职信
2014/07/02 职场文书
公安机关起诉意见书
2015/05/20 职场文书
地道战观后感300字
2015/06/04 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技