ホームページ >バックエンド開発 >PHPチュートリアル >utf8からphpに変換する際の文字抜け・文字化けの解決策 gbk_PHPチュートリアル

utf8からphpに変換する際の文字抜け・文字化けの解決策 gbk_PHPチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-13 10:56:511975ブラウズ

PHP では、uft8 の文字列を gbk や gb2312 に変換すると、文字化けや欠損が発生することがあります。gbk のエンコード範囲と uft8 のエンコード範囲の問題があるため、以下に gbk と utf8 のエンコード範囲の表を簡単に示します。見てみれば、その理由がわかるでしょう。

1.コーディング範囲
1. GBK (GB2312/GB18030)
x00-xff GBK 2 バイトエンコード範囲
x20-x7f アスキー
xa1-xff 中国語
x80-xff 中国語


2. UTF-8 (ユニコード)
u4e00-u9fa5 (中国語)
x3130-x318F (韓国語
) xAC00-xD7A3 (韓国語)
u0800-u4e00 (日本語)

追記: 韓国語は[u9fa5]より大きい文字です

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

$c = 'テスト•キャラクター転送•ハッピーメーデー! ';

echo iconv('utf-8', 'gbk',$c);

出力のみ: テストすると、すべてが失われます。」

解決策:

//無視を追加

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

$c = 'テスト•キャラクター転送•ハッピーメーデー! ';

echo iconv('utf-8', 'gbk//IGNORE',$c);

入力と出力: テスト文字転送 ハッピー メーデー!

例 2

コードは次のとおりです コードをコピー
echo $str= ‘こんにちは、ここでコーヒーを売っています!’; エコー '
'; echo iconv('GB2312', 'UTF-8', $str); //文字列エンコーディングを GB2312 から UTF-8 に変換します
エコー '
'; echo iconv_substr($str, 1, 1, 'UTF-8') // バイト数ではなく文字数で切り詰めます
print_r(iconv_get_encoding()); // 現在のページのエンコーディング情報を取得します
echo iconv_strlen($str, 'UTF-8'); // 設定されたエンコーディングの文字列長を取得します
?>


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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632129.html技術記事 PHP では、uft8 の文字列を gbk や gb2312 に変換すると、gbk のエンコード範囲と uft8 のエンコード範囲の問題により、文字化けや損失が発生します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。