「エンコーディング」、「文字セット」、「コードページ」の違いは何ですか? 質問する

「エンコーディング」、「文字セット」、「コードページ」の違いは何ですか? 質問する

私は本当にこの分野でもっと上達しようと努力しています。このような国際化の概念についてはかなり理解していますが、その背後にある理論についてもっとよく理解する必要があります。

もう読んだスポルスキーの記事しかし、この3つの用語は互換的に使用されるため、まだよく分かりません。多く—その記事でもそうです。少なくとも 2 人は同じことを言っていると思います。

開発者の多くは、毎日このようなことをうまくやり過ごしているのではないかと思います。私はもう、そのような開発者の一人にはなりたくありません。

ベストアンサー1

「文字セット」とは、その名の通り、適切に指定された個別の文字のリストです。

「エンコーディング」とは、文字セット (現在では一般的に Unicode) と文字の (通常はバイトベースの) 技術的表現との間のマッピングです。

UTF-8 はエンコーディングですが、文字セットではありません。Unicode 文字セット(*) のエンコーディングです。

混乱が生じるのは、他のよく知られたエンコーディングのほとんど (例: ISO-8859-1) が、最初は別々の文字セットとして始まったためです。その後、これらの文字セットのほとんどのスーパーセットとして Unicode が登場すると、これらを単なる独立した文字セットではなく、同じ (Unicode) 文字セットの異なる (ただし部分的な) エンコーディングとして考えることができるようになりました。このように考えると、Unicode を介して簡単に変換できます。これらが単なる独立した文字セットであった場合は、変換は不可能です。ただし、これらを文字セットと呼ぶことには意味があるため、どちらの用語も使用できます。

「コード ページ」は IBM に由来する用語で、表示されるシンボルのセットを選択する際に使用されました。この用語は DOS から Windows まで使用され続け、Unicode 対応の Windows では番号付き識別子を持つエンコードとして機能します。番号付き「コード ページ」は本来 Microsoft に限った概念ではありませんが、今日ではこの用語はほとんどの場合、Windows が認識するエンコードを意味します。

コード ページ ‹何らかの番号› について話す場合、通常は Windows 固有のエンコードについて話すことになります。標準化団体によって考案されたエンコードとは異なります。たとえば、コード ページ 28591 は通常その名前で呼ばれるのではなく、単に「ISO-8859-1」と呼ばれます。ISO-8859-1 に基づく Windows 固有の西ヨーロッパ エンコード (一部の制御コードの代わりにいくつかの追加文字が使用されています) は、通常「コード ページ 1252」と呼ばれます。

[*: UTF はすべて文字セットではなくエンコーディングですが、この種のことは Unicode に限ったことではありません。たとえば、日本の標準 JIS X 0208 では、文字セットと、それに対する 2 つの異なるバイト エンコーディングが定義されています。1 つはやや不快な高バイト ベースのエンコーディング (「Shift-JIS」)、もう 1 つは非常に恐ろしいエスケープ切り替えベースのエンコーディング (「JIS」) です。]

おすすめ記事