ホームページ > バックエンド開発 > PHPチュートリアル > PHP で文字列が UTF8 エンコードされたコードかどうかを検出する方法

PHP で文字列が UTF8 エンコードされたコードかどうかを検出する方法

WBOY
リリース: 2016-06-20 13:01:42
オリジナル
1111 人が閲覧しました

文字列が与えられた場合、それがどのようなエンコーディングであるかをどのように判断するのでしょうか?

php には mb_detect_encoding という関数があります。

ただし、これには mb_string ライブラリが必要ですが、どこでも利用できるわけではありません。

function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string); 
}
ログイン後にコピー


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


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート