ホームページ >バックエンド開発 >PHPチュートリアル >PHP が文字列エンコーディングを決定する関数_PHP チュートリアル

PHP が文字列エンコーディングを決定する関数_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:06:091183ブラウズ

文字エンコード判定は特にユーザーが入力・送信した文字のエンコードを判定して効率的に処理したいと思います

mb_detect_encoding()($) str);

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


//文字列のエンコーディングを決定します
if ($tag === mb_convert_encoding(mb_convert_encoding($tag, "GB2312", "UTF-8"), "UTF-8", "GB2312")) {

}
else {//gb2312 の場合は utf8 に変換します
$tag = mb_convert_encoding($tag, 'UTF-8', 'GB2312');
}

この関数はエンコードを検出できますが、この関数を使用するには、スペースを変更せずに使用している場合は、phpのextension=php_mbstring.dll拡張子を開く必要があります

php.ini設定フォルダーの権限で文字列エンコーディングをチェックするためのより良い機能はありますか?はい、はい

文字列がUTF-8でエンコードされているかどうかを判断する

http://www.bkjia.com/PHPjc/630722.html
コードは次のとおりです コードをコピー

/**
+------------------------------------------------ ----------
* 文字列が UTF8 エンコードされているかどうかを確認してください
+------------------------------------------------ ----------
* @param string $string string
+------------------------------------------------ ----------
* @return ブール値
+------------------------------------------------ ----------
​*/
関数 is_utf8($string)
{
return preg_match('%^(?:
[x09x0ax0dx20-x7e] | [xC2-xDF][x80-xBF] [xC2-xDF][x80-xBF] # 非長すぎる 2 バイト
| xE0[xA0-xBF][x80-xBF] xE0[xA0-xBF][x80-xBF] # オーバーロングを除く | [xE1-xECxEExEF][x80-xBF]{2} # ストレート 3 バイト
| xED[x80-x9F][x80-xBF] xED[x80-x9F][x80-xBF] # サロゲートを除く                                                                                                                                                            | xF4[x80-x8F][x80-xBF]{2} # プレーン 16
)*$%xs', $string);
}



GB2312かUTF-8かを確認できます

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

関数 is_gb2312($str)
{
for($i=0; $i $v = ord( $str[$i] );
If( $v > 127) {
If( ($v >= 228) && ($v {
If( ($i+2) >= (strlen($str) - 1)) // 十分ではありません

を返します。

キャラクター
                                                                                                                                                                                                      If( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf

エンコーディング

以来 それ以外

true を返します。                                                                                                                     }
}
true を返します;
}




一部の友人は、mb_check_encoding 関数を使用して確認できると言っていますが、私はこれをテストしていないので、自分でテストできます。

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/630722.html技術記事特に、ユーザーが入力または送信した文字がどのようなエンコードであるかを判断して効果的に処理したいと考えています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。