なぜUCSとUnicode文字セットの両方が必要なのですか? [閉まっている
質問
UCSとUnicodeのコードポイントは同じだと思いますよね?
その場合、なぜ2つの標準(UCSとUnicode)が必要なのですか?
解決
それらは2つの基準ではありません。ユニバーサルキャラクターセット(UCS)は標準ではなく、標準で定義されているもの、つまりISO 10646です。 エンコーディング, 、UCS-2など。
実際に異なるエンコーディングまたは異なる基準を意味するのかを推測することは困難です。しかし、後者に関しては、UnicodeとISO 10646はもともと、異なる目標と戦略を持つ2つの異なる標準化の取り組みでした。しかし、彼らは2つの異なる基準から生じるすべての混乱を避けるために、1990年代初頭に調和しました。それらは、コードポイントが実際に同じになるように調整されています。
ただし、ユニコードは柔軟に機能し、単純なコードポイント割り当てを超えて物事を標準化することに大きな関心を持っている業界コンソーシアムによって定義されているため、区別されていました。 Unicode標準は、文字だけでなく、多数の原則と処理ルールを定義します。 ISO 10646は、ISOおよびそのメンバーの標準やその他の文書で参照できる正式な標準です。
他のヒント
コードポイントは同じですが、いくつかの違いがあります。から UnicodeとISO 10646(つまりUCS)の違いに関するウィキペディアのエントリ:
それらの違いは、UnicodeがISO 10646の範囲外のルールと仕様を追加することです。ISO10646は単純な文字マップであり、ISO 8859のような以前の標準の拡張です。ヘブライ語やアラビア語のようなスクリプトの双方向アルゴリズム
読むのに役立つかもしれません 絶対的な最小のすべてのソフトウェア開発者は、Unicodeと文字セットについて積極的に積極的に知っておく必要があります(言い訳はありません!)
違いは、コードポイントのエンコードの方法とは思われます。 UCS-Xは、固定量のバイトを使用してコードポイントをエンコードします。たとえば、UCS-2は2つのバイトを使用します。ただし、UCS-2は、2バイト以上を必要とするコードポイントをエンコードできません。一方、UTFは、エンコードに可変量のバイトを使用します。たとえば、UTF-8は少なくとも1つのバイト(ASCII文字の場合)を使用しますが、文字がASCII範囲の外側にある場合、より多くのバイトを使用します。