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下通过POST还是GET来传值
Jun 05 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
PHP生成器简单实例
May 13 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
深入理解PHP内核(一)
Nov 10 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
PHP以json或xml格式返回请求数据的方法
May 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安全配置详细说明
2011/09/26 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Python之字典对象的几种创建方法
2020/09/30 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
企业总经理岗位职责
2014/02/13 职场文书
效能监察建议书
2014/05/19 职场文书
五一促销活动总结
2014/07/01 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
黄石寨导游词
2015/02/05 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL