ホームページ  >  記事  >  バックエンド開発  >  文字列が UTF8 でエンコードされているかどうかを検出するための PHP の一般的な方法、utf8 エンコード_PHP チュートリアル

文字列が UTF8 でエンコードされているかどうかを検出するための PHP の一般的な方法、utf8 エンコード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:32896ブラウズ

文字列が UTF8 でエンコードされているかどうかを検出するための PHP の一般的な方法、utf8 エンコード

この記事の例は、文字列が UTF8 でエンコードされているかどうかを検出する PHP の一般的な方法をまとめたものです。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです

文字列エンコーディングを検出するには、ord を使用して文字のベースを取得してから判定を入力するか、mb_detect_encoding 関数を使用して処理するなど、さまざまな方法があります。参考までに、以下に 4 つの一般的な方法を示します。

例1

コードをコピーします コードは次のとおりです:
/**
* 文字列が UTF8 エンコードされているかどうかを確認してください
* @param string $str 検出される文字列
* @return boolean
*/
関数 is_utf8($str){
$len = strlen($str);
for($i = 0; $i $c = ord($str[$i]);
if ($c > 128) {
if (($c > 247)) false を返します;
elseif ($c > 239) $bytes = 4;
elseif ($c > 223) $bytes = 3;
elseif ($c > 191) $bytes = 2;
それ以外の場合は false を返します;
if (($i + $bytes) > $len) return false;
while ($bytes > 1) {
$i++;
$b = ord($str[$i]);
if ($b 191) は false を返します;
$バイト--;
}
}
}
true を返します;
}

例 2
コードをコピー コードは次のとおりです:
function is_utf8($string) {
戻り preg_match('%^(?:
[x09x0ax0dx20-x7e] | [xC2-xDF][x80-xBF] [xC2-xDF][x80-xBF] # 非長大な 2 バイト
                                                                        | [xE1-xECxEExEF][x80-xBF]{2} # ストレート 3 バイト
                                                                                                                                                                                                                                                                                                                                      )*$%xs', $string); }

精度は基本的に mb_detect_encoding() と同じであり、正解も不正解も同様です。
コーディング検出は 100% 正確であることはできませんが、これは基本的に要件を満たすことができます。
例 3


コードをコピーします

コードは次のとおりです:

function mb_is_utf8($string)
{ Return mb_detect_encoding($string, 'UTF-8') === 'UTF-8';//新しい発見 }
例 4



コードをコピーします
コードは次のとおりです:


// $string が有効な UTF-8 の場合は true を返し、それ以外の場合は false を返します。 関数 is_utf8($word)

{ if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{ 1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228) )."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-". chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."] {1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2 ,}/",$word) == true) { true を返します。 } それ以外は
{
false を返します。 }
} // 関数 is_utf8

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/915431.html技術記事 PHP が文字列が UTF8 エンコードされているかどうかを検出する一般的な方法 この記事では、PHP が文字列が UTF8 エンコードされているかどうかを検出する一般的な方法を要約します。参考のためにみんなで共有してください。具体的で実践的...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。