在PHP中使用UTF-8字符集 - 是否需要mb函数?

Spo*_*ace 5 php utf-8 multibyte-functions

这几天我一直在努力将我的PHP代码库从latin1转换为UTF-8.我已经读过两个主要的解决方案是用内置的多字节函数替换单字节函数,或者在php.ini文件中设置mbstring.func_overload值.

但后来我遇到了关于堆栈溢出的这个线程,其中thomasrutter的帖子似乎表明UTF-8实际上不需要多字节函数,只要脚本和字符串文字以UTF-8编码即可.

我还没有找到任何其他证据证明这是否属实,如果事实证明我不需要将我的代码转换为mb_functions那么这将是一个真正的节省时间!有人能够对此有所了解吗?

Pek*_*ica 10

据我所知,只要所有数据在utf-8中都是100% - 这意味着用户输入,数据库以及PHP文件本身的编码(如果你有特殊字符) - 这是真的 适用于搜索和比较操作.正如@ntd所指出的,当在包含多字节字符的字符串上运行时,非多字节strlen()将产生错误的结果.

是一篇关于编码基础知识的精彩文章.