ホームページ >バックエンド開発 >PHPチュートリアル >文字列エンコーディングが utf-8 であるかどうかを判断する PHP プログラム コード_PHP チュートリアル
この記事では、文字列エンコーディングが utf-8 であるかどうかを判断するための PHP のプログラム コードを紹介します。興味がある場合は、参照のために自由に入力してください。
文字エンコーディングを検出するために mb_detect_encoding() を使用していました
コードは次のとおりです | コードをコピー |
//文字列のエンコーディングを決定する 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'); } |
$keytitle = “%D0%BE%C6%AC”;検出結果は UTF-8 です。このバグは実際にはバグではありません。プログラムを作成する際に mb_detect_encoding に依存しすぎると、文字列が短い場合に検出結果が偏る可能性があります。
それを解決する方法は次のとおりです:
コードは次のとおりです | コードをコピー |
$encode = mb_detect_encoding($keytitle, array('ASCII','GB2312','GBK','UTF-8'); |
パラメータは、検出される入力変数、エンコード方法の検出順序 (一度 true になると、後で自動的に無視されます)、および厳密モード
です。
最も大きな可能性が最初に配置されるようにエンコード検出の順序を調整すると、誤った変換の可能性が減ります。
上記の方法でも解決できないので、以下の別の解決策を見つけました。
例1
コードは次のとおりです | コードをコピー |
// $string が有効な UTF-8 の場合は true を返し、それ以外の場合は false を返します。
関数 is_utf8($word) |