gbk utf8 GBK と UTF-8 ウェブページエンコーディングを正しく理解して使用する方法

gbk utf8 GBK と UTF-8 ウェブページエンコーディングを正しく理解して使用する方法
Web ページ エンコーディングは英語では web page encoding と翻訳され、Web ページ内の特定の文字エンコーディング形式を指定するライブラリです。
GBKは国家規格GB2312をベースに拡張された規格であり、GB2312と互換性があります。 GBK テキスト エンコーディングは 2 バイトで表されます。つまり、中国語と英語の両方の文字が 2 バイトで表されます。中国語を区別するために、最上位ビットは 1 に設定されます。 GBK はすべての中国語の文字を含む国家コードです。UTF8 ほど汎用性はありませんが、UTF8 が占めるデータベースは GBK よりも大きくなります。

UTF-8: Unicode TransformationFormat-8 ビット。BOM を許可しますが、通常は BOM を含みません。これは、国際文字を解決するために使用されるマルチバイト エンコーディングです。英語の場合は 8 ビット (つまり 1 バイト)、中国語の場合は 24 ビット (3 バイト) を使用します。 UTF-8 は世界中のあらゆる国で必要な文字を網羅しており、汎用性に優れた国際的なエンコーディングです。 UTF-8 でエンコードされたテキストは、UTF8 文字セットをサポートするさまざまな国のブラウザーで表示できます。 UTF8 エンコーディングであれば、外国人の英語版 IE でも中国語を表示でき、IE 用の中国語サポート パッケージをダウンロードする必要がありません。
UTF-8 バージョンは国際互換性に優れていますが、中国語バージョンでは GBK/BIG5 バージョンよりも 50% 多くのデータベース ストレージ領域が必要になります。したがって、UTF-8 バージョンは推奨されず、国際互換性に特別な要件があるユーザーのみを対象としています。簡単に言えば、中国語の文字が多い Web サイトの場合、データベースのスペースを節約するために GBK エンコーディングを使用するのが適切です。英語コンテンツが多い Web サイトの場合は、データベースのスペースを節約するために UTF-8 を使用するのが適切です。

GBK、GB2312 などを UTF8 に変換するにはどうすればいいですか? GBK、GB2312、UTF8 は、Unicode エンコードを介して相互に変換する必要があります: GBK、GB2312-Unicode-UTF8、UTF8-Unicode-GBK、GB2312。 Windows のメモ帳で「名前を付けて保存」を使用すると、GBK、Unicode、Unicode ビッグ エンディアン、UTF-8 エンコード方式間で変換できます。

ブラウザが Web ページのエンコーディングを正しく識別するようにするにはどうすればよいですか?通常、Web ページには <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> のような文があり、この Web ページの文字セット エンコーディングが GB2312 であることを示します。 (またはUTF-8)
ページでエンコードが指定されている場合に文字化けした文字が表示されるのはなぜですか?これは、ページで宣言されたエンコーディングがファイル自体のエンコーディングと一致していないことが原因である可能性があります。多くの場合、間違ったエンコーディングでページを開いて保存したり、CuteFTP などの FTP ソフトウェアを使用してオンラインでファイルを直接変更したりすることで発生します。この場合、ソフトウェアのエンコーディング構成が間違っているために間違ったエンコーディングに変換されます。このとき、Windows のメモ帳を使用して開き、「名前を付けて保存」を使用して対応するエンコードで保存すると、問題が解決します。

Windows オペレーティング システムで IE をブラウザーとして使用すると、UTF-8 エンコードを使用する Web ページを参照するときに、Web ページでエンコード形式が宣言されている場合でも、ブラウザーはページで使用されているエンコードを自動的に識別できないという問題がよく発生します: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />。その結果、中国語の UTF-8 エンコードを含む一部のページでは、空白の出力が生成されます。 Firefox または Sarafi ブラウザを使用している場合、この問題は発生しません。これは、IE が Web ページのコードを解析するときに HTML タグを優先し、次に HTTP ヘッダー内の情報を優先するのに対し、Mozilla シリーズのブラウザではその逆であるためです。

UTF-8 では中国語の文字を表すのに 3 バイトを使用するのに対し、通常の GB2312 または BIG5 では 2 バイトを使用するためです。ページを出力する際、上記のような理由により、ブラウザが<title></title>の内容を解析して出力する際に​​、</title>の前にある全角文字が奇数個あると、IEはUTF-8を2バイトとして解析し、半角漢字が表示されます。このとき、半角漢字は</title>の<と結合して文字化けした単語になり、IEは<title>部分を読み取ることができず、ページ全体が空の出力になります。このとき、ソースファイルを確認すると、実際にはページ全体が出力されているのに、ブラウザに内容が表示されていないことがわかります。最も簡単な解決策は、<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> を <title></title> の前に置くことです。

<<:  モバイルアダプティブスタイルで@mediaを使用する方法

>>:  React 手書きタブ切り替え問題

推薦する

複数の例で HTML フォームを使用する方法

参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...

mysqlは指定された期間内の統計データを取得します

mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...

Windows 10 で MySQL を完全にアンインストールして再インストールするための詳細な手順

さまざまな理由で、誰もが MySQL を再インストールする必要があると思います。 MySQL と Q...

MySQLがフルテーブルスキャンを実行するいくつかの状況

目次ケース1:ケース2:ケース3:簡単にまとめると:過去 2 日間で、完全なテーブル スキャンを引き...

Vue.jsフレームワークはショッピングカート機能を実装します

この記事では、ショッピングカートを実装するためのVue.jsフレームワークの具体的なコードを参考まで...

geo モジュールを使用して Nginx でホワイトリストを設定する例

元の構成: http { ...... limit_conn_zone $binary_remote...

ズームインとズームアウトの閉じるボタンを実現する CSS (サンプル コード)

この効果はブラウザ ページで最もよく見られます。まずは効果の画像をご覧ください。 上の図に示すように...

フロントエンドの vue+express ファイルのアップロードとダウンロードの例

新しいserver.jsを作成する糸初期化 -y 糸を追加エクスプレスノードモン -D var ex...

Ubuntu 18.04 に phpMyAdmin をインストールするための詳細なチュートリアル

Ubuntu 18.04 上の Apache で動作するように phpMyAdmin をインストール...

HTML はテキストの外側に省略記号を表示します...テキストオーバーフローによって実装されます

div または span に同時に CSS を適用する必要があります。コードをコピーコードは次のとお...

ウェブサイトデザインの経験 ウェブサイト構築におけるよくある間違いのまとめ

注意: 計画、設計、開発のいずれの場合でも、これらの間違いは避けなければなりません。 1. ナビゲー...

VMware ワークステーションの仮想マシンの互換性の問題に対する解決策

VMware ワークステーションの仮想マシンの互換性の問題を解決するにはどうすればよいですか?ノート...

Dockerコンテナのk8sデプロイメントの実装

環境: (docker、k8s クラスター)、前回 docker で起動した Java プログラムの...

MySQLデータベースのトランザクション分離レベルの詳細な説明

データベーストランザクション分離レベルデータベース トランザクションには、低から高まで 4 つの分離...

moment.jsの時間と日付の処理の詳細な説明

月曜日から日曜日の時間形式の変換(Y --- 年 M --- 月 D--- 日) : : : : :...