1. ホーム
  2. Web制作
  3. HTML/Xhtml

GBKとUTF-8のWebエンコードを正しく理解し、利用するためのgbk utf8の選び方

2022-01-28 11:18:08
Web page encodingは、ウェブページエンコーディングと訳され、ウェブページにその特定の文字エンコーディング形式を指定するライブラリです。
GBKはGB2312をベースとした国家規格で、拡張後はGB2312と互換性があります。GBK はすべての漢字を含み、UTF8 よりも一般的でない国家規格のエンコーディングですが、UTF8 は GBK よりも大きなデータベースを占有しています。
UTF-8: Unicode TransformationFormat-8bitは、BOMを許容するが通常はBOMを含まない、国際文字を解決するために用いられるマルチバイトエンコーディングで、英語は8ビット(つまり1バイト)、中国語は24ビット(3バイト)を使って符号化する。UTF-8でエンコードされたテキストは、各国のUTF8文字セットに対応したブラウザーで表示することが可能です。UTF8でエンコードされていれば、外国人の英語版IEでも中国語が表示できるので、IEの中国語対応パッケージをダウンロードする必要はない。
UTF-8版は国際互換性に優れていますが、中国語はGBK/BIG5版に比べて50%以上のデータベース保存容量を必要とするため、推奨されず、国際互換性に特別な要件のあるユーザーのみとなります。簡単に言うと、中国語が多いウェブサイトでは、GBKエンコーディングはデータベーススペースを節約するのに適しています。英語の多いサイトでは、UTF-8がデータベースの容量を節約するのに適しています。
GBK、GB2312などをUTF8に変換する方法は?GBK, GB2312, などと UTF8 は Unicode エンコーディングで相互に変換する必要があります。GBK, GB2312--Unicode--UTF8; UTF8--Unicode--GBK, GB2312です。GBK, GB2312 と UTF8 の変換は、Windows メモ帳の "Save As" を使ってください: GBK, GB2312--Unicode--UTF8; UTF8--Unicode--GBK, GB2312. Unicode、UnicodeビッグエンディアンとUTF-8。
ブラウザにウェブエンコーディングを正しく認識させるには?通常、ウェブページには次のような文があるはずです。 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> これは、このウェブページの文字コードがGB2312(またはUTF-8)であることを示すものです。
エンコードを指定すると、ページが文字化けすることがあるのはなぜですか?これは、ページ宣言のエンコーディングとファイル自体のエンコーディングが一致していないことが原因であることが多く、間違ったエンコーディングでページを開いて保存したり、CuteFTPなどオンラインで直接ファイルを修正する一部のFTPソフトで、ソフトのエンコーディングの設定を間違えて間違ったエンコーディングを変換してしまった場合にも起こります。この場合、Windowのメモ帳で開き、"Save As"で対応するエンコーディングで保存すると解決します。
Windows OSでIEをブラウザとして使用している場合、UTF-8エンコーディングのWebページを閲覧する際に、ページがエンコーディング形式を宣言しているにもかかわらず、ブラウザがページで使用されているエンコーディングを自動的に認識しない問題がしばしば発生します: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />、その結果、中国のUTF-8のエンコーディングを含む一部のページでブランク出力となることがあります。Firefox、Sarafiをお使いの場合は、この問題は発生しません。これは、IEがHTMLのタグを最初に、HTTPヘッダーのメッセージを最初に解析するのに対し、モジラ系ブラウザはその逆を行うだけだからです。
UTF-8は漢字1字に3バイト、通常のGB2312やBIG5は2バイトなので。ページ出力時、上記の理由により、ブラウザに<title></title>の内容を解析して出力させますが、</title>の前に奇数の全角文字があると、IEでは漢字半角の状況を解析する際にUTF-8を2バイトとして扱い、漢字半角は<.と結合されてしまうことになるのです。 /title> ;の<の文字化けに結合され、その結果、IEは<を介して読み取ることができない;タイトル>部分は、空の百出力用のページ全体ように、今回は、ソースファイルを見れば、実際にはページ全体が出力されていることがわかりますが、ブラウザは、コンテンツを表示しないようにします。一番簡単な解決策は、<title> </title> の前に <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> を入れることです。