我应该为多字节字符串使用mb_ *或iconv_ *函数吗?

时间:2009-07-04 18:52:27

标签: php unicode multibyte iconv

就像我们现在一样,在PHP中处理多字节字符串并不容易。例如,我想得到以下字符串的长度:ä

strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1

我应该使用哪些功能? mb_ *或iconv_ *?为什么?考虑到编码可能不限于UTF-8。

提前谢谢!

1 个答案:

答案 0 :(得分:5)

看看这个Powerpoint演示文稿:

http://www.nyphp.org/content/presentations/smallworld/April2006-nyphp-Presentation.ppt

简而言之: Iconv支持更多编码,但便携性较差。

来自演示文稿:

  

PHP支持两个多字节   扩展:iconv和mbstring

     
      
  • iconv使用外部库(支持更多编码但更少   便携式)
  •   
  • mbstring具有与PHP捆绑的库(编码较少但更多   便携式)
  •