【问题标题】:Should I use mb_* or iconv_* functions for multibyte strings?我应该对多字节字符串使用 mb_* 或 iconv_* 函数吗?
【发布时间】:2010-11-08 03:23:06
【问题描述】:

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

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

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

提前谢谢!

【问题讨论】:

    标签: php unicode multibyte iconv


    【解决方案1】:

    看看这个 Powerpoint 演示文稿:

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

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

    来自演示文稿:

    PHP 支持多字节一分为二 扩展:iconv 和 mbstring

    • iconv 使用外部库(支持更多编码但更少 便携)
    • mbstring 将库与 PHP 捆绑在一起(编码更少但更多 便携)

    【讨论】:

    • 谢谢! mbstring 的另一个优点是,还有更多功能,例如 mb_strtoupper、mb_strtolower 等。
    猜你喜欢
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2012-05-12
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多