文字エンコード判定は特にユーザーが入力・送信した文字のエンコードを判定して効率的に処理したいと思います
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でエンコードされているかどうかを判断する
コードは次のとおりです |
コードをコピー |
/**
+------------------------------------------------ ----------
* 文字列が 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 関数を使用して確認できると言っていますが、私はこれをテストしていないので、自分でテストできます。
|
|
http://www.bkjia.com/PHPjc/630722.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/630722.html技術記事特に、ユーザーが入力または送信した文字がどのようなエンコードであるかを判断して効果的に処理したいと考えています。