3

在 Python 中,我可以将其转换为 Unicode 并执行 '(?u)^[\w ]+$' 正则表达式搜索,但 PHP 似乎不理解国际 \w,或者是吗?

4

3 回答 3

8

虽然我没有测试过自己,但查看http://us3.php.net/manual/en/reference.pcre.pattern.syntax.php建议以下内容:'/^[\p{L}]+$/ u' 会起作用 - \p{L} 将匹配任何 unicode 字母。此外,您显然可以在没有大括号的情况下编写此代码 - '/^[\pL ]+$/u'。

于 2008-11-12T23:28:30.610 回答
1

afaik PHP 不知道 utf8,这意味着 php 本身将无法按字节处理它。

PHP 相信一切都是 latin1,但是有一些扩展可能对你有用,比如 mbstring。

http://se.php.net/mbstring

于 2008-11-12T23:29:17.927 回答
0

使 UNICODE 在代码库中的任何地方都能正常工作是 PHP6 的“大”特性之一。

在此之前,建议您不要在 php 中使用 UNICODE,因为它可能会引发许多安全问题。

很多代码都不是 UNICODE 感知的,因此不安全,漏洞利用可以以非常不愉快的方式通过它。

于 2008-11-12T23:34:42.020 回答