外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイトを多数開くと、すべて「口口口口」という文字が表示されます。 WordPress プログラムは UTF-8 を使用し、多くの CMS は GB2312 を使用します。 ● なぜこんなに多くのコードがあるのですか? ● UTF-8とGB2312の違いは何ですか? ● 国内でウェブサイトを構築する場合、UTF-8 エンコード形式と GB2312 エンコード形式のどちらを使用する方が良いでしょうか? 1. 各種コードの起源おそらく多くの学生は、さまざまな文字エンコード方式について常に混乱しており、なぜこれほど多くのエンコードがあるのか理解していないのでしょう。 ANSI エンコード 実際、昔、開閉してさまざまな状態に組み合わせることができる 8 個のトランジスタを使用して、世界のあらゆるものを表現しようと決めた人々のグループがいました。彼らは 8 つのスイッチ状態が適切だと考えたため、これを「バイト」と呼びました。 当初、コンピューターは米国でのみ使用されていました。 8 ビットのバイトは、合計 256 (2 の 8 乗) の異なる状態に組み合わせることができます。 0 から始まる番号が付けられた 32 の状態に特別な用途が割り当てられました。端末またはプリンターは、これらの合意されたバイトが送信されるのを検出すると、合意されたいくつかのアクションを実行します。 00×10 に遭遇すると、端末は行を折り返します。0×07 に遭遇すると、端末はビープ音を鳴らします。たとえば、0×1b に遭遇すると、プリンタは強調表示された単語を印刷するか、端末は文字を色付きで表示します。彼らはこれは良いアイデアだと考え、0×20 未満のバイト状態を「制御コード」と呼びました。 そして、すべてのスペース、句読点、数字、大文字と小文字を 127 までの連続したバイト状態で表現し、コンピューターが異なるバイトを使用して英語のテキストを保存できるようにしました。誰もがこれに満足したため、この方式は ANSI の「Ascii」エンコーディング (American Standard Code for Information Interchange) と呼ばれました。当時、世界中のすべてのコンピューターは英語のテキストを保存するために同じ ASCII 方式を使用していました。 拡張ANSIエンコード その後、バベルの塔の建設と同じように、世界中の人々がコンピューターを使い始めましたが、多くの国では英語が使われておらず、文字の多くはASCIIではありませんでした。コンピューターにテキストを保存するために、127番の後の空きスペースを使用してこれらの新しい文字と記号を表すことにしました。また、表を描くときに必要な水平線、垂直線、十字などの多くの図形を追加し、シリアル番号を最後の状態255に上げました。 128 から 255 までの文字セットは「拡張文字セット」と呼ばれます。それ以来、貪欲な人間には利用できる新しい国家がなく、米国はおそらく他の国々がコンピューターを必要とするとは予想していなかった。 GB2312 エンコーディング 中国の人々がコンピューターを手に入れた当時、中国語の文字を表すバイト状態はまだ存在せず、保存する必要のある一般的な中国語の文字が 6,000 個以上あったことは言うまでもありません。中国人は、127番以降の奇妙な記号を何のためらいもなく削除した。 ルールは、127 未満の文字は前と同じ意味を持ちますが、127 を超える 2 つの文字をつなげると、中国語の文字を表します。最初のバイト (彼はこれを上位バイトと呼んでいます) は 0xA1 から 0xF7 まで使用され、2 番目のバイト (下位バイト) は 0xA1 から 0xFE まで使用されます。このようにして、約 7,000 の簡体字中国語文字を組み合わせることができます。 これらのコードには、数学記号、ローマ字、ギリシャ文字、日本語の仮名も含まれていました。ASCII にすでに存在していた数字、句読点、文字もすべて 2 バイト文字として再エンコードされました。これらは一般に「全角」文字と呼ばれ、元々サイズが 127 未満のものは「半角」文字と呼ばれます。したがって、この漢字体系は「GB2312」と呼ばれます。 GB2312 は ASCII の中国語拡張です。 GBK および GB18030 エンコーディング しかし、中国には漢字が多すぎて、ここでは入力できない人名がたくさんあることがすぐに分かりました。特に、一部の中国の指導者の名前は入力できないと非常に困ります。したがって、GB2312 で使用されていないコード位置を探し出し、躊躇せずに使用し続ける必要があります。 その後、それでもまだ不十分だったため、下位バイトが 127 番以降の内部コードでなければならないという要件は不要になりました。最初のバイトが 127 より大きい限り、その後に続くものが拡張文字セットの内容であるかどうかに関係なく、これが漢字の始まりであることを示すように固定されています。結果として得られた拡張エンコード方式は GBK 標準と呼ばれ、GB2312 のすべての内容が含まれ、約 20,000 個の新しい中国語の文字 (繁体字を含む) と記号が追加されています。 その後、少数民族もコンピューターを使いたがったため、再度拡張し、少数民族向けに数千の新しい文字を追加し、GBKはGB18030に拡張されました。これからは、中華民族の文化はコンピューター時代にも継承されていくでしょう。 この規格の最大の特徴は、2 バイトの中国語文字と 1 バイトの英語文字が同じエンコード方式で共存することです。したがって、中国語処理をサポートするには、作成するプログラムで文字列内の各バイトの値に注意する必要があります。この値が 127 より大きい場合、2 バイト文字セットの文字が出現すると見なされます。 当時、プログラミングのトレーニングを受けたすべてのプログラマーは、毎日何百回も次のマントラを唱えなければなりませんでした。 「1 つの中国語の文字は 2 つの英語の文字として数えられます! 1 つの中国語の文字は 2 つの英語の文字として数えられます...」 UNICODEエンコード 当時は、中国と同様に各国が独自のエンコード標準を持っていたため、誰も互いのエンコードを理解しておらず、誰も他のエンコードをサポートしていませんでした。わずか 150 海里しか離れておらず、同じ言語を使用していた中国本土と台湾でさえ、異なるエンコード方式を採用していました。 当時、中国人がコンピューターに漢字を表示させたい場合、「漢字システム」をインストールする必要がありました。中国語の文字の表示と入力の問題に対処するために特別に使用されます。 ただし、台湾人が作成したプログラムを使用するには、BIG5 エンコードをサポートする別の「易天中国語文字システム」をインストールする必要があります。間違った文字システムをインストールすると、表示がおかしくなります。これについてどうすればいいでしょうか?さらに、世界には当面コンピューターを使えない貧しい人々がいます。彼らの文章をどうしたらよいのでしょうか。 この瞬間、天使が現れました。ISO(国際標準化機構)と呼ばれる国際組織が、この問題に取り組むことを決めたのです。彼らが採用した方法は非常に単純でした。すべての地域コード体系を廃止し、地球上のすべての文化、文字、記号を含む新しい体系を作成するのです。彼らはそれを UCS、一般に UNICODE と呼ばれるものと呼ぶことを計画しました。ユニバーサルマルチオクテットコード化文字セット UNICODE で 1 つの漢字が 2 つの英語の文字としてカウントされていた時代はほぼ終わりました。 半角の英字でも全角の漢字でも、すべて「ひとつの文字」として統一されます!同時に、それらはすべて「2バイト」に統一されています UTF-8 と UTF-16 UNICODEが登場したとき、コンピュータネットワークの台頭も伴いました。ネットワーク上でUNICODEをどのように伝送するかも考慮しなければならない問題であったため、伝送用のUTF(UCS Transfer Format)標準が数多く登場しました。名前が示すように、UTF8は一度に8ビットのデータを送信し、UTF16は一度に16ビットのデータを送信します。ただし、伝送の信頼性のために、UNICODEからUTFへの直接の対応はなく、変換するためのいくつかのアルゴリズムと規則が必要です。 UCS-4の将来 前述のように、UNICODE は 1 つの文字を表すために 2 バイトを使用します。これにより、合計 65535 種類の文字を組み合わせることができ、おそらく世界中のすべての文化のシンボルをカバーできます。それでも足りないなら、それは問題ではありません。ISO は UCS-4 方式を用意しています。簡単に言うと、1 つの文字を表すのに 4 バイトを使用します。このようにして、21 億の異なる文字を組み合わせることができます (最上位ビットは他の用途に使用されます)。これは、中国で銀河連邦が設立される日まで使用できる可能性があります。 2. 一部の Web サイトを開いたときに文字化けした文字が表示されることがあるのはなぜですか?Web ページの文字化けは、ブラウザ (IE など) が HTML Web ページを解釈するときに発生します。 ウェブサイトのページのコードに間違った言語が記述されている場合(比較的まれですが)、次のようになります。
このページをブラウザで表示すると、文字化けした文字が表示されます。ブラウザがこのページの言語を「ヨーロッパ言語」として識別するためです。 解決策は、言語「ISO-8859-1」を GB2312 に変更するか、繁体字中国語の Web ページの場合は BIG5 に変更することです。 もう 1 つの可能性は、Web ページで使用されている言語が示されていないことです。 <META CONTENT="text/html; charset=XXXXX">、この行。 また、コンピュータのデフォルト言語はこれではありません。たとえば、日本語の Web サイトにアクセスすると、この問題がよく発生します。これは主に、プログラマーが現地の人々のために Web サイトを開発したためです。現地の言語がデフォルトなので、コードが文字化けすることはありません。しかし、あなたは部外者であり、オペレーティング システム自体はデフォルトで現地の言語ではありません。したがって、言語を手動で変更する必要があります。 「口、口、口、口」が発生する状況については これは、Web サイトが UTF-8 エンコードではなく、モンゴル語やアラビア語などのローカル エンコードを使用しているためです。お使いのコンピューターにはこのエンコードがないため、認識できません。 解決方法は、ブラウザの多言語サポートパッケージを事前にインストールすることです(たとえば、IEをインストールするときに多言語サポートパッケージをインストールする必要があります)。このようにして、Webページの閲覧中に文字化けが発生した場合、ブラウザのメニューバーの下で「表示」/「エンコード」/「自動選択」/モンゴル語を選択できます。繁体字中国語の場合は「表示」/「エンコード」/「自動選択」/アラビア語を選択し、他の言語の場合は対応する言語システムを選択します。これにより、Webページの文字化けを解消できます。 3. 現在、ウェブサイトの開発にはどのようなコーディングが適していますか?私たちの一般的な理解は次のとおりです。 UTF-8 は中国語エンコードを完全にサポートするユニバーサルコードです。私たちが作成する Web サイトが海外のユーザーにも正常にアクセスできるようにするには、UTF-8 を使用するのが最適です。 GB2312 は主に国内ユーザー向けの中国語エンコードです。海外のユーザーが GB2312 でエンコードされた Web サイトにアクセスすると、文字化けした文字が表示されます。 ネットユーザーは一般的に、UTF-8 が GB2312 よりはるかに多く使用されていると信じており、誰もが UTF-8 の使用に賛成しています。 海外のウェブサイトを調査したところ、次のこともわかりました。 この図から、2001 年から 2008 年にかけて GB2312 エンコーディングの使用はそれほど多くなかったものの、着実に増加していたことがわかります。青い線は、UTF-8 を使用する Web サイトが増えていることを示しています。 国内の大手ポータルをいくつか選択して、どのようなエンコード形式が使用されているかを確認しました。 おそらく、国内のウェブサイトでは GB2312 がより頻繁に使用されている理由を尋ねる学生もいるでしょう。 私もこの質問については考えたことがあると思います。理由は3つあります: 1. これらの国内ウェブサイトは長い歴史があり、当初は GB2312 エンコーディングを使用していましたが、現在では UTF-8 (以前のウェブページ) に変換するのは困難でリスクも非常に大きいです。 2. UTF-8 でエンコードされたファイルは、GB2312 ファイルよりも多くのスペースを占有します。これは現在のハードウェア環境では無視できますが、これらのポータル Web サイトは基本的にすべてのページを静的に生成して、サーバーの負荷を軽減します。UTF-8 で保存されたファイルは比較的大きくなります。ポータル レベルの Web サイトで毎日生成されるファイルの量は依然として非常に大きく、それに応じてストレージ コストが増加します。 3. UTF-8 エンコードのネットワーク転送データ量は GB2312 デコードよりも大きいため、ポータル レベルの Web サイトには適していません。これにより、帯域幅が目に見えないほど増加し、GB2312 を使用することがネットワーク トラフィックの最適な最適化となることは間違いありません。 したがって、新しい Web サイトを構築するときは、UTF-8 を選択することをお勧めします。上記のような理由がないので、互換性が最善策です。 |
<<: CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。
目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!--方法 1: onf...
今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...
この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...
方法は2つあります: 1. サービス方法ファイアウォールのステータスを確認します。 [root@ce...
アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...
コンテナの応用はますます一般的になっていますが、大量のコンテナをどのように管理すればよいのでしょうか...
簡単に言えば、遅延レプリケーションとは、スレーブ データベースがマスター データベースより 1 時間...
目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...
Dockerイメージのインポートとエクスポートこの記事では、移行、バックアップ、アップグレードなどの...
表では、右下の境界線の色を個別に定義したり、セルの左上の境界線の色を定義したりできます。これら 2 ...
データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...
導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...
ボックス モデルは、要素ボックスの幅と高さ、パディング、境界線、余白のサイズを指定します。境界線の内...
CSS (カスケーディング スタイル シート) は、HTML Web ページを美しくするために使用さ...