文字セットは複数の文字の集合であり、各文字セットには異なる数の文字が含まれています。ASCII 文字セット、GB2312 文字セット、GB 18030 文字セットです。 、Unicode 文字セットなどコンピューターがさまざまな文字セットのテキストを正確に処理するには、コンピューターがさまざまなテキストを認識して保存できるように文字エンコーディングが必要です。
中国語には多数の文字があり、また、簡体字中国語と繁体字中国語の異なる表記ルールの 2 つの文字に分かれています。そのため、中国語の文字のエンコードは中国語用の技術です。情報交換。この記事では、いくつかの代表的な文字セットを文字セットの年代順に説明し、いくつかの代表的な漢字セットを選択し、その歴史的起源、特徴、および技術的特徴を検討します。
ASCII文字セット
1. 名前の由来
ASCII(American Standard Code for Information Interchange、American Standard Code for Information Interchange)は、ローマ字をベースにしたコンピュータコーディングシステムです。
2. 特徴
主に現代英語やその他の西ヨーロッパ言語を表示するために使用されます。これは現在最も一般的なシングルバイトエンコードシステムであり、国際標準 ISO 646 と同等です。
3. コンテンツが含まれています
制御文字:Enterキー、バックスペース、改行キーなど。
表示できる文字:英大文字、小文字、アラビア数字、欧文記号
4. 技術的特徴
7ビットで1文字を表し、合計128文字
5. ASCII拡張文字セット
7ビットエンコードされた文字セットより一般的に使用されるヨーロッパ文字を表すために、ASCII 拡張文字セットは 8 ビットを使用して合計 256 文字をサポートします。
ASCII拡張文字セットで拡張された記号には、表記号、計算記号、ギリシャ文字、特殊ラテン記号などがあります。
GB2312 文字セット
1. 名前の由来
GB2312 は GB2312-80 文字セットとも呼ばれ、正式名称は「情報交換用中国語コード化文字セット・基本セット」で、旧中国国家標準局が 2016 年 12 月に発行しました。 1981年5月1日施行。
2. 特徴
GB2312は中国の国家標準の簡体字文字セットです。含まれる漢字は使用頻度の 99.75% をカバーしており、基本的に漢字のコンピュータ処理ニーズを満たしています。中国本土とシンガポールで広く使用されています。
3. 含まれるコンテンツ
GB2312 には、簡体字中国語文字と一般記号、シリアル番号、数字、ラテン文字、日本語のかな、ギリシャ文字、ロシア文字、中国語のピンイン記号、中国語の表音文字、合計 7445 個のグラフィック文字が含まれています。これには、第 1 レベルの中国語 3,755 文字と第 2 レベルの中国語 3,008 文字を含む 6,763 の漢字が含まれており、ラテン文字、ギリシャ文字、日本語のひらがなおよびカタカナ文字、ロシア語のキリル文字を含む全角文字 682 文字が含まれています。
4. 技術的特徴
(1) 分割表現:
収集された漢字は GB2312 で「分割」され、各ゾーンには 94 個の漢字/記号が含まれます。この表現は位置コードとも呼ばれます。
各エリアに含まれる文字は次のとおりです: エリア01~09は特殊記号、エリア16~55はピンイン順にソートされた第1レベルの漢字、エリア56~87は部首/画数ごとにソートされています。 ; エリア 10 ~ 15 および 88 エリア -94 はエンコードされません。
(2)全角表現
2バイトのうち最初のバイトが1バイト目、後半のバイトが2バイト目となります。通常、最初のバイトを「上位バイト」と呼び、2 番目のバイトを「下位バイト」と呼びます。
「上位バイト」は0xA1~0xF7(エリア01~87の市外局番に0xA0を加算)、「下位バイト」は0xA1~0xFE(0xA0に01~94を加算)を使用します。
5. エンコーディングの例
GB2312 文字セットの最初の漢字「あ」を例に挙げます。その市外局番は 16、ビット番号は 01 です。市外局番は 1601 です。ほとんどのコンピュータ プログラムでは、上位バイトが 1601 です。および下位バイト 各セクションに 0xA0 を追加すると、プログラムの漢字処理コード 0xB0A1 が得られます。計算式は0xB0=0xA0+16、0xA1=0xA0+1となります。
BIG5 キャラクターセット
1. 名前の由来
Big Five または Big Five とも呼ばれ、1984 年に台湾情報産業協会と 5 つのソフトウェア会社、Acer、MiTAC、Allison によって開発されました。 FICなのでビッグファイブと呼ばれています。
Big5 コードが作成されたのは、当時台湾のさまざまなメーカーが、相互に互換性のない、Yitian コード、IBM PS55、湾岸コードなどの異なるコードを発売していたためです。一方、台湾政府はまだ互換性を持っていませんでした。中国は公式の中国語文字コードを導入し、中国本土の GB2312 エンコードには繁体字中国語の文字が含まれていません。
2. 特徴
Big5 文字セットには、合計 13,053 個の漢字が含まれています。この文字セットは、台湾、中国で使用されています。興味深いのは、この文字セットには同じ 2 つの文字、「兀」 (0xA461 および 0xC94A) と「嗀」 (0xDCD1 および 0xDDFC) が繰り返し含まれていることです。
3. 文字エンコード方式
Big5 コードでは、2 バイトを使用して単語をエンコードする 2 バイト格納方式が使用されます。最初のバイトは「上位バイト」と呼ばれ、2 番目のバイトは「下位バイト」と呼ばれます。上位バイトのエンコード範囲は0xA1~0xF9、下位バイトのエンコード範囲は0x40~0x7E、0xA1~0xFEです。
各エンコード範囲に対応する文字の種類は次のとおりです: 0xA140 ~ 0xA3BF は句読点、ギリシャ文字、特殊記号です。 さらに、0xA259 ~ 0xA261 には 2 音節の測定単位の単語が格納されます: 噙兛兞兝II兣嗧。瓩玎; 0xA440-0xC67E は一般的に使用される漢字で、最初にストロークで並べ替え、次に部首で並べ替えます。0xC940-0xF9D5 は、最初にストロークで並べ替え、次に部首で並べ替えます。
4.Big5の限界
Big5のコードには10,000文字以上が含まれていますが、社会で流通している人名、地名、方言、化学や生物学などは考慮されておらず、日本語は含まれていません。ひらがなとカタカナの文字。
例えば、台湾では「朱」は「朱」の変化形とみなされているため、「朱」という言葉は含まれません。康熙辞典の一部の部首(「亠」、「疒」、「辵」、「綶」など)、通称(「君」、「玄」、「檜」、「喆」など) 」など)はBig5には含まれません。
GB18030文字セット
1. 名前の由来
GB 18030の正式名称はGB18030-2000「情報交換用の中国語文字エンコード文字セットの基本セット」によってリリースされた新しい漢字エンコード国です。中国政府による 2000 年 3 月 17 日の基準、2001 年 8 月 31 日以降に中国市場でリリースされたソフトウェアはこの基準に準拠する必要があります
2. 特徴
GB 18030 文字セット標準の導入には、有名な企業から広範な参加とデモンストレーションが行われています。国内外の情報技術産業企業に対して、情報産業部が旧国家品質技術監督総局と共同で実施。
GB 18030 文字セット標準は、中国語の文字、日本語のかな、韓国語、および中国の少数文字で構成される大規模な文字セットのコンピュータエンコードの問題を解決します。この規格の合計文字エンコーディング スペースは 150 万エンコーディング ビットを超え、中国語、日本語、韓国語、および中国の少数文字をカバーする 27,484 個の中国語文字が含まれています。中国本土、香港、台湾、日本、韓国などの東アジアでの情報交換のための、多言語、大きなフォント サイズ、多目的で統一されたコーディング形式の要件を満たしています。 Unicode バージョン 3.0 とも互換性があり、Unicode 拡張文字語彙「統一漢字拡張 A」の内容を満たしています。また、以前の各国文字エンコーディング標準 (GB2312、GB13000.1) と互換性があります。
3. エンコード方式
GB 18030規格では、文字のエンコードにシングルバイト、ダブルバイト、4バイトの3つの方式が使用されています。半角部分は0x00~0x7Fのコード(ASCIIコードの対応コードに相当)を使用します。 2 バイト部分では、最初のバイト コードの範囲は 0x81 ~ 0xFE、最後のバイト コード ビットはそれぞれ 0x40 ~ 0x7E と 0x80 ~ 0xFE です。 4 バイト部分は、GB/T 11383 では使用されていない 0x30 ~ 0x39 を 2 バイトエンコード拡張のサフィックスとして使用します。拡張された 4 バイトエンコードの範囲は 0x81308130 から 0xFE39FE39 です。最初と 3 バイトのエンコード コード ビットはすべて 0x81 ~ 0xFE で、2 バイト目と 4 バイトのエンコード コード ビットはすべて 0x30 ~ 0x39 です。
4. 含まれるコンテンツ
全角部分に含まれるコンテンツには、主に GB13000.1 のすべての CJK 漢字 20,902 個、関連する句読点 13 個、表意文字記述子、補助漢字 80 個と部首/コンポーネント、および 2 バイト エンコーディングのユーロが含まれます。シンボルなど4 バイト部分には、上記の 2 バイト文字を除く、CJK 統一中国語文字拡張 A を含む GB 13000.1 のすべての文字が含まれます。
Unicode Character Set
1. 名前の由来
Unicode Character Set Encoding は、Universal Multiple-Octet Coded Character Set の略で、Unicode Consortium という団体によって開発された文字の交換、処理、符号化システムです。そして今日の世界のさまざまな言語で書かれたテキストの表示。このエンコードは 1990 年に開発が開始され、1994 年に正式に発表されました。最新バージョンは 2005 年 3 月 31 日の Unicode 4.1.0 です。
2. 特徴
Unicodeはコンピュータで使われる文字コードです。各言語の各文字に統一された一意のバイナリ エンコーディングを設定し、言語間およびプラットフォーム間のテキスト変換と処理の要件を満たします。
3. エンコード方式
Unicode 標準では常に 16 進数が使用され、書き込み時に先頭に「U+」が付けられます。たとえば、文字「A」のエンコードは 004116、文字「?」のエンコードは 20AC16 です。したがって、「A」のエンコードは「U+0041」と記述されます。
4.UTF-8エンコーディング
UTF-8はUnicodeの使用方法の1つです。 UTF は Unicode Translation Format であり、Unicode を特定の形式に変換することを意味します。
UTF-8 は、ネットワーク上の異なるコンピューター間で、異なる言語およびエンコーディングでのテキストの送信を容易にし、シングルバイト処理を処理する既存のシステム上で 2 バイト Unicode を正しく送信できるようにします。
UTF-8 は Unicode 文字の格納に可変長バイトを使用します。たとえば、ASCII 文字は引き続き 1 バイトを使用し、アクセント付き文字、ギリシャ文字、またはキリル文字は 2 バイトを使用しますが、一般的に使用される中国語文字は 3 バイトを使用します。補助プレーン文字は 4 バイトを使用します。
5.UTF-16 と UTF-32 エンコーディング
UTF-32、UTF-16、UTF-8 は、Unicode 標準エンコーディング文字セットの文字エンコーディング スキームです。UTF-16 は、1 つまたは 2 つの未割り当ての 16 ビット コード単位 A を使用します。 Unicode コード ポイントのエンコーディングのシーケンス。UTF-32 は、各 Unicode コード ポイントを同じ値の 32 ビット整数として表します。
さまざまなPHPアプリケーションにおける文字化けコードの問題の解決策
1)タグを使用してページエンコーディングを設定します
このタグの目的は、クライアントのブラウザがページを表示するために使用する文字セットエンコーディングを宣言することです。xxxはGB2312、GBK、UTF-です。 8 (MySQL は異なります。MySQL は UTF8) などです。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示し、エンコーディング エラーや文字化けを回避できます。しかし、場合によっては、この文がどの xxx であっても機能しないことがわかります。これについては後で説明します。
これは HTML 情報に属し、サーバーが HTML 情報をブラウザーに渡したことを示すだけの単なるステートメントであることに注意してください。
2) header("content-type:text/html; charset=xxx");
この関数 header() の機能は、括弧内の情報を http ヘッダーに送信することです。括弧内の内容が記事に記載されているとおりであれば、最初のラベルと比較すると、文字が似ていることがわかります。ただし、違いは、この機能がある場合、ブラウザは常に要求された xxx エンコーディングを使用し、決して従わないことです。そのため、この機能は非常に便利です。なぜこれが起こっているのでしょうか? 次に、http ヘッダーと HTML 情報の違いについて説明する必要があります:
http ヘッダーは、http プロトコルを使用して HTML 情報をブラウザーに送信する前にサーバーによって送信される文字列です。タグはHTML情報に属しているため、header()で送信された内容が最初にブラウザに届きます。人気のポイントは、header()の優先度が高いことです(これを言えるかわかりませんが)。 PHP ページに header("content-type:text/html;charset=xxx") と header("content-type:text/html;charset=xxx") の両方がある場合、ブラウザは前者の http ヘッダーとヘッダーのみを認識します。メタではありません。もちろん、この関数はphpページ内でのみ使用できます。
なぜ前者は確実に動作するのに、後者は時々動作しないのかという疑問も残ります。これが、次に Apache について話したい理由です。
3) AddDefaultCharset
Apache ルートディレクトリの conf フォルダに、Apache 設定ドキュメント全体 httpd.conf があります。
テキスト エディタを使用して httpd.conf を開きます。行 708 (バージョンが異なる場合があります) には、AddDefaultCharset xxx (xxx はエンコード名) が含まれています。このコード行の意味: サーバー全体の Web ページ ファイルの http ヘッダーの文字セットをデフォルトの xxx 文字セットに設定します。この行があることは、各ファイルにヘッダー行 ("content-type: text/html; charset=xxx") を追加することと同じです。これで、ブラウザが utf-8 に設定されているにもかかわらず常に gb2312 を使用する理由が理解できました。
Webページにheader("content-type:text/html; charset=xxx")がある場合、デフォルトの文字セットが設定した文字セットに変更されるので、この機能は常に役に立ちます。 AddDefaultCharset xxx の前に「#」を追加し、この文をコメントアウトし、ページにヘッダー (「content-type...」) が含まれていない場合は、メタ タグが有効になります。
上記の優先順位は以下のとおりです:
header("content-type:text/html; charset=xxx")
.. AddDefaultCharset xxx
..
Webプログラマーであれば、各ページに推奨されます。ヘッダー ("content-type:text/html;charset=xxx") を追加して、どのサーバーでも正しく表示でき、移植性が高いことを確認します。
4) php.ini の Default_charset 設定:
php.ini の Default_charset = "gb2312" は、php のデフォルトの言語文字セットを定義します。通常、この行をコメント アウトし、必須要件とするのではなく、Web ページ ヘッダーの文字セットに基づいてブラウザが自動的に言語を選択できるようにすることをお勧めします。これにより、複数の言語の Web サービスを同じサーバー上で提供できます。
上記では、Torchlight 2 mod の使用方法、さまざまな PHP エンコーディング セットとそれらがどのような状況で使用されるかについての詳細な説明を紹介しており、PHP チュートリアルに興味のある友人に役立つことを願っています。