我已经配置了 PHP mbstring.func_overload = 7
,所以所有的单字节字符串函数都映射到它们的多字节等效项。但有时我仍然需要将字符串视为字节数组;例如,在计算它们的大小或进行加密时。
这里最好的方法是什么?我可以只使用多字节函数并向它们传递单字节编码,即使这实际上不是字符串的编码方式吗?例如:
mb_substr($utf8str, 0, 1, "latin1");
mb_strlen($utf8str, "latin1");
编辑:在查看 PHP 的源代码时,我注意到他们将原始函数重命名为 mb_orig_X,就像在 mb_orig_strlen 中一样。可能不安全使用,因为它们没有记录,但很有趣。