php转换字符串编码iconv与mb_convert_encoding的区别说明
2023-06-13 09:14:31 时间
iconv—Convertstringtorequestedcharacterencoding(PHP4>=4.0.5,PHP5)
mb_convert_encoding—Convertcharacterencoding(PHP4>=4.0.6,PHP5)
用法:
stringmb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding])
需要先启用mbstring扩展库,在php.ini里将;extension=php_mbstring.dll前面的;去掉
stringiconv(stringin_charset,stringout_charset,stringstr)
注意:
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT和//IGNORE,
其中:
//TRANSLIT会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
ReturnstheconvertedstringorFALSEonfailure.
使用:
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_encodingisspecifiedbycharactercodenamebeforeconversion.itcanbearrayorstring-commaseparated
enumeratedlist.Ifitisnotspecified,theinternalencodingwillbeused.
$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");
mb_convert_encoding—Convertcharacterencoding(PHP4>=4.0.6,PHP5)
用法:
stringmb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding])
需要先启用mbstring扩展库,在php.ini里将;extension=php_mbstring.dll前面的;去掉
stringiconv(stringin_charset,stringout_charset,stringstr)
注意:
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT和//IGNORE,
其中:
//TRANSLIT会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
ReturnstheconvertedstringorFALSEonfailure.
使用:
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_encodingisspecifiedbycharactercodenamebeforeconversion.itcanbearrayorstring-commaseparated
enumeratedlist.Ifitisnotspecified,theinternalencodingwillbeused.
$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://input allow_url_include,DVWA设置PHP函数allow_url_include:已禁用
- PHP之与或非_php字符串运算符
- MySQL登录安全之PHP实现(php登录mysql)
- 数据库MySQL 数据库的 PHP 扩展研究(php扩展mysql)
- PHP实现MySQL乐观锁的技术研究(mysql乐观锁php)
- php连接MySQL超时:有效解决方案(php连接mysql超时)
- 利用PHP操作Redis变得更简单(php中redis的使用)
- 9102 年的 PHP
- Linux平台如何测试PHP环境(linux测试php环境)
- Linux环境下,如何高效、简单地编写PHP代码(linux下写php)
- PHP配置指南:MySQL编码设置详解(php设置mysql编码)
- PHP与MSSQL:高效开发数据驱动应用程序(php与mssql)
- 安装Linux下的PHP:从源码进行编译(linux源码安装php)
- 脚本定时执行PHP脚本任务:Linux下的解决方案(linux定时php)
- 使用PHP编辑器轻松编写Linux平台代码(php编辑器linux)
- 『PHP无法读取MSSQL数据库出现问题』(php无法读取mssql)
- PHP与MySQL的更新:让Web应用更稳定!(php mysql 更新)
- 用PHP实现Redis的键值存储(redis键值php)
- php实现jQuery扩展函数
- php实现进制转换(二进制、八进制、十六进制)互相转换实现代码
- PHP将逗号、空格、回车分隔的字符串转换为数组的函数
- PHP编码转换函数自动转换字符集支持数组转换
- php实现utf-8和GB2312编码相互转换函数代码
- PHP笔记之:日期函数的使用介绍
- PHP转换文件夹下所有文件编码的实现代码
- 解析PHP自带的进位制之间的转换函数
- 浅析PHP中的字符串编码转换(自动识别原编码)
- php自动识别文件编码并转换为UTF-8的方法
- PHP生成不重复标识符的方法