毎日のフロントエンド開発作業では、HTML、JavaScript、CSS、その他の言語を頻繁に扱います。実際の言語のように、コンピューター言語にはアルファベット、文法、語彙、エンコードメソッドなどもあります。ここでは、フロントエンドのHTMLとJavaScriptの日常業務でしばしば遭遇するエンコードの問題について簡単に説明します。
コンピューターでは、保存する情報はバイナリコードで表されます。画面に表示される英語や漢字などのシンボルの変換や、ストレージに使用されるバイナリコードの変換について知っていることがエンコードです。
説明すべき2つの基本的な概念、Charsetとキャラクターのエンコードがあります。
文字セット、つまり、シンボルと数の間の関係をマッピングする表、つまり、107はKoubeiの「A」であり、21475は口コミの「口」であり、異なるテーブルはASCII、GB2312、Unicodeなどのマッピング関係が異なることを決定します。この数字と文字のマッピングテーブルを使用して、バイナリ表現された数値を特定の文字に変換できます。
グラムエンコード、エンコードメソッド。たとえば、「移植」されるべき数1475の場合、それを表すために /u5k3e3を使用する必要がありますか、それともそれを表すために%e5%8f%a3を使用する必要がありますか?これは、文字エンコーディングによって決定されます。
「cuoxin.com」のような文字列の場合、それらはアメリカ人に一般的に使用されるキャラクターです。彼らはASCIIと呼ばれるキャラクターセットを策定しました。フルネームはアメリカの標準情報コードインターチェンジです。 128番号0127(2、0×00-0×7Fの7番目のパワーへ)は、123ABCなどの一般的に使用される128文字を表しています。合計7ビットがあり、最初のビットは記号ビットです。これは、補体逆コードを使用して負の数などを表すために使用する必要があります。合計で8ビットがあり、バイトを形成します。アメリカ人は当時少しケチでした。彼らが最初から16ビットまたは32ビットのバイトを設計していた場合、世界には多くの問題があります。しかし、当時、彼らはおそらく8ビットで十分だと思っていたので、128の異なる文字を表すことができます!
コンピューターはアメリカ人によって作られているため、トラブルを節約し、使用するすべてのシンボルをエンコードするため、使用が非常に快適になります。しかし、コンピューターが国際化され始めたとき、問題が発生します。例として中国を取り上げてください。漢字は数万しかありません。どうすればいいですか?
既存の8ビットAバイトシステムは基礎であり、破壊することはできません。16ビットなどに変更することはできません。そうしないと、変更が大きすぎるため、別のパスしか取ることができません。
このMBCの概念により、より多くのキャラクターを表現できます。たとえば、2つのASCII文字を使用する場合、16ビットがあり、理論的には16 65,536文字のパワーに2文字があります。しかし、これらのエンコードはどのようにキャラクターに割り当てられますか?たとえば、「口」「口」のユニコードエンコードは21475です。誰が決定しましたか?キャラクターセットは、導入されたばかりのチャーセットです。 ASCIIは最も基本的な文字セットです。この上には、単純化された中国人や伝統的な中国人などのMBCのGB2312とBIG5に似たキャラクターセットがあります。最後に、Unicode Consortiumと呼ばれる機関があり、すべてのキャラクターと対応するエンコーディング方法を含むキャラクターセット(UCS、ユニバーサルキャラクターセット)を作成することを決定しました。 1991年以来、Unicode International Standards、ISBN 0-321-18578-1の初版をリリースし、ISOの国際機関もこのISO/IEC 10646:ユニバーサルキャラクターセットのカスタマイズに参加しています。要するに、Unicodeは、基本的に地球上のすべての既存のシンボルをカバーする文字基準です。現在、ますます広く使用されています。 ECMA標準は、JavaScript言語の内部文字がUnicode標準を使用していることも規定しています(これは、JavaScript変数名、関数名などが中国語で許可されていることを意味します!)。
中国の開発者にとって、GBK、GB2312、およびUTF-8の間の変換など、より多くの問題に遭遇する可能性があります。厳密に言えば、この声明はあまり正確ではありません。 GBKとGB2312は文字セット(charsets)であり、UTF-8はユニコード標準のUCS文字セットのエンコーディング方法です。 Unicode文字セットを使用したWebページは主にUTF-8でエンコードされているため、人々はしばしばそれらをまとめますが、実際には不正確です。
ユニコードでは、少なくとも人間の文明がエイリアンに遭遇する前に、これはマスターキーなので、それを使用してください。現在、最も広く使用されているユニコードエンコードメソッドはUTF-8(8ビットUCS/Unicode変換形式)です。
UCS文字セットのエンコード、世界中のユニバーサル
これは、ASCIIと互換性のある可変長文字エンコード方法です
2番目のポイントは大きな利点です。これにより、以前に互換性のある純粋なASCIIを使用したシステムが追加のストレージを追加しません(長いエンコード方法が設定されていると仮定すると、各文字は2バイトで構成され、ASCII文字が占めるストレージスペースが2倍になります)。