PHPによる文字セット自動判別とトランスコーディングについて詳しく解説_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:02:52
オリジナル
1365 人が閲覧しました

原理は非常に単純です。中国語の gb2312/gbk は 2 バイトであり、この 2 バイトには値の範囲があるのに対し、UTF-8 の中国語文字は 3 バイトであり、各バイトにも値の範囲があるからです。エンコードの状況に関係なく、英語は 128 未満であり、占有するのは 1 バイトのみです (全角を除く)。
ファイル形式でのエンコードチェックであれば、utf-8のBOM情報を直接確認することもできます。この関数は文字列のチェックとトランスコードに使用されます。

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

functionsafeEncoding($string,$outEncoding ='UTF-8')
{
$encoding = "UTF-8";
for($ i=0;$i {
//最初のバイトが渡されます
$char = $string{++$i};
if((ord($char)&128)==128)

// 2 番目のバイトが渡されます $char = $string{++$i};
if((ord($char)&128)==128 )$ encoding = "utf-8";
$string を返す;
else
return iconv($encoding,$outEncoding,$string)?>






http://www.bkjia.com/PHPjc/327896.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/327896.html

技術記事

原理は非常に単純です。中国語の gb2312/gbk は 2 バイトであり、この 2 バイトには値の範囲があるのに対し、UTF-8 の中国語文字は 3 バイトであり、各バイトにも値の範囲があるからです。そして英語は関係ありません...





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