2011-07-12 12 views
1

PCREがUTF-8とUnicodeの一般的な カテゴリプロパティをサポートしていますが、ネイティブエンコーディングがサポートされている場所はわかりません。PCREエンコーディングのサポート

ISO-8859-1: をサポートしていると言えば、その情報をどこで見つけることができますか? A簡単に言えば

アイブPHPによって支持符号化は、Windows-1252としないISO-8859-1エンコーディングであることを推測& IMを比較しました。

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

ISO-8859-1は、その位置に '€'がありません。 Windows-1252はそうです。 またはシステムに依存していますか?

したがって、PCREサポートをネイティブエンコードしていますか?

+0

の概要です: http://codepad.viper-7.com/dhprfD – Mike

+0

ので、なぜ私の作品?システムによって異なりますか? – nEAnnam

答えて

4

まさにこの実施例は、8ビットおよびUnicode要するに

Mixing Unicode and 8-bit Character Codes

を混合することから問題を説明するためにregular-expressions.infoで使用され、ユーロ記号は、すべてのWindowsコードページに80hです。あなたの正規表現エンジンがこれをどのように扱うかはさまざまです。あなたの正規表現エンジンが8ビットで、テキストファイルがWindowsコードページを使用しているときに動作します。
正規表現エンジンが純粋なユニコードのエンジンである場合、\ x80は制御コードである\ u0080として読み込まれます。

ネイティブエンコーディングPCREサポートの意味は?これはシステム依存であり、コードページに依存しないでください。

ユニコードの利点は、すべての異なるコードページとそれに由来するすべての問題を取り除くことができることです。

そのためにユニコードを使用するには、\x{20AC}と照合してみてください。ユーロ記号のユニコードコードポイントです。ここで

は、私のために一致していないようですregular-expressions.info about the unicode syntax

関連する問題