有没有理由不在PHP中使用多字节函数?

时间:2013-11-19 13:56:01

标签: php utf-8

我理解为什么mb_函数很有用。但我不确定是否有任何理由继续使用旧的普通字符串函数。作为编程老师,我想知道我是否应该跳过那些支持多字节版本的人。

相关问题:

1 个答案:

答案 0 :(得分:2)

并非所有字符串操作都重新实现为mb_函数,例如,没有mb_等同于str_replace。原因是它并不是必需的,因为str_replace在任何编码的字符串上都能正常工作,如果你注意参数都是一致的编码。

所以,你不能简单地完全忽略所有“旧的普通字符串函数”。如果您正在执行需要编码和字符感知的操作,则需要使用mb_函数。出于其他目的,您不一定。

如果您明确尝试使用字节而不是字符,那么“旧的普通字符串函数”也很有用。例如,您可以使用substr来测试是否存在BOM:

if (substr($str, 0, 3) == "\xEF\xBB\xBF")