欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

iconv和mb_convert_encoding转码函数的区别

程序员文章站 2022-05-12 08:56:51
...

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”);

1 2 下一页