【发布时间】:2012-04-21 06:36:05
【问题描述】:
echo preg_match("/\b(בדיקה|מילה)\b/iu", "זוהי בדיקה");
由于某种原因,此代码在我测试过的几台服务器上返回 1,但在一台特定服务器上返回 0。
PCRE 编译时支持 UTF-8 和 Unicode 属性。可能是什么问题?
【问题讨论】:
-
locale来自此服务器?来自网络服务器的默认字符集?检查“firebug”标头编码的响应 -
@ZiTAL 和其他服务器一样:Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
-
这是什么输出操作系统?
print_r(mb_detect_order()); -
确保文件使用 UTF8 编码,某些文件复制程序会更改编码。否则@ZiTAL 的提示,语言环境可能会起作用:php.net/manual/en/class.locale.php
-
@ZiTAL Array ( [0] => ASCII [1] => UTF-8 ) 在所有服务器上。还有其他想法吗?这真是令人沮丧。此外,该文件当然是用 UTF-8 编码的。
标签: php utf-8 preg-replace