「文字コードの問題に関するチュートリアル」(http://jkorpela.fi/chars.html#code)という記事で、「文字コード」/「コードポイント」と「文字エンコード」という用語が説明されています。ASCIIコードポイントと文字コードの比較
前者は文字に割り当てられた単なる整数です。たとえば、65文字A文字コードは、そのようなコードポイントが1バイト以上のバイトでどのように表されるかを定義します。
古いASCIIでは、「ASCII規格で指定された文字エンコーディングは非常に簡単で、コード番号が255を超えない文字コードで最も明白です。各コード番号は同じ値を持つオクテット。」
だから65 Iは、127個のコード・ポイントが存在するASCII 127個の文字を有するので、各コードポイントが常にあるAのコードポイント1000 0001
として符号化されることになるで1バイトでエンコードされます。
私はASCIIで文字をエンコードするには、次の手順を持って、これを要約した場合:
- は、各文字(例えばA-> 65)に番号(コードポイント)を割り当て
- で文字をエンコード同じ値(例えば1000年0001)は、バイト
だから、文字AとBのために、それは
Aだろう - > 65 - > 1000年0001 B - > 66 - > 1000 0010
私の質問は:ASCIIのコードポイントとエンコーディングの
なぜ、この分離? ASCIIにはエンコードが1つしかありません。だから、少なくともASCIIの場合、なぜ中間ステップ(整数へのマップ)が行われたのかはわかりません。
Aのようなダイレクトエンコーディング - > 1000年0001 B - > 1000年0010
も可能かないでしょうか? ASCII文字に複数のエンコーディングを使用する場合、分離は合理的ですが、1つのエンコーディング形式では意味がありません。
ASCIIのような1バイトのエンコーディングでは、65のようなコードポイントとそれに対応するエンコーディングを区別する利点はありませんか? – knowledge
ASCIIが唯一の文字セットだった場合はyesです。しかし、それは決して唯一のキャラクターセットではありません。概念には異なる属性があります。たとえば、コードポイントをカウントするのは便利ですが、エンコーディングのバイト値はカウントしないでください。キャラクタセットセット間でコードポイントを受け取ることができましたが、コードユニットを比較すると、それは全く異なるレベルになります。 –