PHP での漢字の正規化は非常に簡単だと思う人もいるかもしれませんが、それを使用すると、gbk エンコードと uft8 エンコードの間にいくつかの違いがあることに気づくでしょう。エディターはそれを以下で紹介します。
gbkエンコーディング下の通常の中国語文字
1. 文字列がすべて漢字かどうかを判断します
コードは次のとおりです | コードをコピー |
$str = 'すべて漢字テストです'; If (preg_match_all("/^([x81-xfe][x40-xfe])+$/", $str, $match)) { echo 'すべて漢字です' ; } その他 { echo 'すべての漢字が含まれるわけではありません'; } ?> |
$str = 'すべてが中国語の文字であるテスト'; の場合、 "すべてが中国語の文字です";
$str = 'すべてが中国語の文字であるテスト' の場合、「すべてが中国語の文字ではない」と出力されます;
2. 文字列に漢字が含まれているかどうかを確認します
コードは次のとおりです | コードをコピー |
$str = '漢字 3 テスト'; If (preg_match("/([x81-xfe][x40-xfe])/", $str, $match)) { echo '中国語の文字が含まれています' ; } その他 { echo '漢字は含まれません'; } ?> |
$str = '漢字 3 テスト'; の場合、「漢字が含まれています」;
$str = 'abc345' の場合、出力には「中国語の文字は含まれません」;
上記変数$strの内容はutf8でもgbkエンコードでも関係なく、判定結果は同じです。
utf-8 エンコーディングで正規表現を使用して中国語の文字を照合する方法
コードは次のとおりです | コードをコピー |
$str = "phpプログラミング";
if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) { print("この文字列はすべて中国語です"); } その他 { print("この文字列はすべて中国語ではありません"); } |