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

标签 php utf-8 multibyte-functions

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

但后来我遇到了this thread on stack overflow,其中 thomasrutter 的帖子似乎表明 UTF-8 实际上不需要多字节函数,只要脚本和字符串文字以 UTF-8 编码即可。

我还没有找到任何其他证据来证明这是真的还是假的,如果事实证明我不需要将我的代码转换为 mb_functions 那么这将是一个真正的节省时间!任何人都可以阐明这一点?

最佳答案

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

THis是一篇关于编码基础知识的好文章。

关于php - 在 PHP 中使用 UTF-8 字符集 - 是否需要 mb 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744473/

相关文章:

php - 动态我的个人资料页面 php 不断给出错误

mysql - "AddDefaultCharset utf-8"指定的 Apache utf-8 字符集是否是完整的 utf-8?

带有外来字符的 php sprintf()?

php - sql_查询 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

php - 检查时间戳是否为 x 小时?

javascript - 将 UTF-8 编码的 JSON 从 DB 解析为 JS

delphi - 将两个字节合并为 WideChar

php - PHP 和 C++ 之间的安全套接字通信

java - 检测Java中URL的编码