1. mb_convert_encoding()
- //官方文档
- string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
说明: 将 string 类型 str 的字符编码从可选的 from_encoding 转换到to_encoding。
from_encoding用来指定当前str的字符集。它可以是一个 array 也可以是逗号分隔的枚举列表。 如果没有提供 from_encoding,则会使用内部(internal)编码,会根据内部编码一个一个的比较,速度上会慢,所以要尽量指定少的编码。
2.iconv()
将字符串 str 从 in_charset 转换编码到 out_charset。
- //官方文档
- string iconv ( string $in_charset , string $out_charset , string $str )
可以在out_charset后面也可以添加后缀
- //TRANSLIT: 将启用转写(transliteration)功能,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。
- //IGNORE: 不能以目标字符集表达的字符将被默默丢弃,IGNORE 会忽略掉不能转化的字符。 否则,会导致一个 E_NOTICE并返回 FALSE。
iconv() 在转换中文的 ‘——’ 时,如果不指定//TRANSLIT 或者 //IGNORE,是会出错的(mb_convert_encoding() 无此BUG)。
3.比较
相比之下,当知道当前的字符集编码时,应当首选 iconv() (要设置//TRANSLIT 或者 //IGNORE避免出错), 当大概知道编码时要尽量少的枚举,因为这影像速度。
文章点评