1

也就是说,如果我完全用 PHP4 编写代码?或者也许我应该使用自定义函数或类/扩展来计算多字节字符串中的字符数?

我能发现的唯一区别是 mb_string 去除了坏序列,而 iconv_strlen 没有。

4

1 回答 1

2

如果您想直接替换普通的 strlen,请使用 mb_strlen,因为它总是返回一个 int。虽然这是非常值得商榷的(iconv 对 mb 容错的正确性),但实际上 mb_strlen 的容错性更好地为我服务。只需确保在 php.ini 或应用程序的中心位置将 mb 配置为所需的编码。

PHP 中的 Unicode 支持很糟糕,您必须注意许多陷阱和异常。在完成了几个大型应用程序及其用户数据到 UTF-8 的完整切换之后,我可以为你哭泣。

于 2010-01-13T13:01:42.430 回答