【发布时间】:2011-12-28 19:39:23
【问题描述】:
我正在尝试将作为 POST 提交的值与内部字符串进行比较。它们都是 utf8 编码的。这是代码
echo $_POST["province"] . "\n";
setlocale(LC_COLLATE, "fr_CA");
echo strcoll($_POST["province"], "Québec");
此代码回显以下内容:
Québec
-38
如果字符串匹配,strcoll 应该返回 0,而不是 -38。换句话说,比较失败。如何比较两个与人类阅读器相同但编码不同的 utf8 字符串?我已经尝试过 Normalizer:normalize,常见的“==”运算符,查看了多字节 php 扩展(但似乎没有比较函数??),到目前为止对我来说没有任何效果。
【问题讨论】:
-
试过
strcmp()或strcasecmp()?或者也许比较哈希?
标签: php utf-8 internationalization