iconv和mb_convert_encoding转码函数的区别
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)
用法:
iconv
string iconv ( string $in_charset , string $out_charset , string $str )
将字符串从一个指定的编码转换到另一个指定的编码. 需要注意的是:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀. //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断,举例:
//将 "欢迎访问WEB开发网" 由gb2312编码转为 UTF-8编码 echo iconv('gb2312', 'utf-8, "欢迎访问WEB开发网");
PHP中使用iconv转码的小陷阱
发现iconv在转换字符”—”(ascii码150之后的字符)到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug.
一般情况下用 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.
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);
推荐阅读
-
详解PHP中strlen和mb_strlen函数的区别
-
PHP函数addslashes和mysql_real_escape_string的区别
-
javascript构造函数和原型(js构造函数和普通函数的区别)
-
javascript构造函数和原型(js构造函数和普通函数的区别)
-
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
-
Javascript 普通函数和构造函数的区别
-
JavaScript学习和使用之函数声明和函数表达式的区别
-
PHP explode()函数的几个应用和implode()函数有什么区别
-
PHP中iconv函数转码时截断字符问题的解决方法
-
Python中函数和方法的区别