2011-07-12 111 views
1

我在PCRE Documentation中看到PCRE支持UTF-8和Unicode通用 類別屬性,但我不知道它在哪裏表示Native編碼支持。PCRE編碼支持

如果您說支持ISO-8859-1: 哪裏可以找到關於該信息的信息?

簡而言之:

伊夫相比&即時猜測,編碼由PHP支持是窗口1252而不是ISO-8859-1編碼。

if(preg_match('/€/',"\x80")) 
    echo "Match"; 

ISO-8859-1在該位置沒有'€'。 Windows-1252確實如此。 或依賴系統?

那麼這是本機編碼PCRE支持?

+0

概述這似乎並不符合我: http://codepad.viper-7.com/dhprfD – Mike

+0

爲什麼對我的作品?系統依賴於? – nEAnnam

回答

4

正是本實施例被用在regular-expressions.info從混合8位和unicode

Mixing Unicode and 8-bit Character Codes

描述的困難總之,歐元符號是80h上所有窗口代碼頁。你的正則表達式引擎如何處理這個可能會有所不同。它適用於你的正則表達式引擎是8位並且文本文件使用Windows代碼頁的情況。
如果您的正則表達式引擎是純粹的unicode引擎,它會將\ x80讀作\ u8080這是一個控制代碼。

那麼你是什麼意思本地編碼PCRE支持?這是系統依賴,你不應該依賴一些代碼頁。

unicode的優勢在於,您可以擺脫所有不同的代碼頁以及由此衍生出的所有問題。

因此,要使用unicode作爲\x{20AC}的嘗試匹配,這是歐元符號的Unicode代碼點。

這裏是regular-expressions.info about the unicode syntax