就像我们现在一样,在 PHP 中处理多字节字符串并不是那么容易。例如,我想获取以下字符串的长度:ä
strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1
我应该使用哪些功能?mb_* 还是 iconv_*?为什么?考虑到编码可能不限于UTF-8。
提前谢谢!
看看这个PowerPoint演示文稿:
http://www.nyphp.org/content/presentations/smallworld/April2006-nyphp-Presentation.ppt
简而言之:Iconv 支持更多编码,但便携性较差。
从介绍:
PHP 在两个扩展中支持多字节:iconv 和 mbstring
- iconv 使用外部库(支持更多编码,但可移植性较差)
- mbstring 将库与 PHP 捆绑在一起(编码更少,但更便携)