我在PCRE文档中看到PCRE支持UTF-8和Unicode通用类别属性,但我看不出它在哪里说支持本机编码。
如果你说支持ISO-8859-1:我在哪里能找到这方面的信息?
简单地说,:
我比较和猜测PHP支持的编码是Windows1252,而不是ISO8859-1编码。
if(preg_match('/€/',"\x80"))
echo "Match";ISO-8859-1没有“欧元”这个位置。Windows-1252有。还是依赖于系统?
那么,本机编码PCRE是否支持?
发布于 2011-07-12 06:14:11
准确地说,此示例用于正则表达式. is来描述混合8位和unicode的困难。
混合Unicode和8位字符码
简而言之,欧元符号在所有windows代码页的80h上。您的regex引擎如何对待这一点可能会有所不同。当regex引擎为8位且文本文件使用的是windows代码页时,它可以工作。
如果regex引擎是纯unicode引擎,它将将\x80读取为\u 0080,这是一个控制代码。
那么,您对本机编码PCRE支持意味着什么呢?这是系统依赖的,您不应该依赖某些代码页。
unicode的优点是您可以消除所有不同的代码页以及由此产生的所有问题。
因此,要对此使用unicode,请尝试对\x{20AC}进行匹配,这是欧元符号的unicode代码点。
以下是关于关于unicode语法的正则表达式。的概述
https://stackoverflow.com/questions/6658902
复制相似问题