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

Phi*_*ber 2 php unicode iconv multibyte

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

strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1
Run Code Online (Sandbox Code Playgroud)

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

Thx提前!

kar*_*m79 5

看看这个Powerpoint演示文稿:

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

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

从演示文稿:

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

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