web-dev-qa-db-ja.com

Unicodeコードポイントを指定するために「U +」が使用されるのはなぜですか?

UnicodeコードポイントがU+<codepoint>

例えば、 U+2202は文字を表します。

何故なの U-(ダッシュまたはハイフン文字)または他に何か?

68
Senthil Kumaran

文字「U +」は、マルチセットユニオン「⊎」のU + 228E文字(プラス記号が内部にあるUのようなユニオンシンボル)のASCII化されたバージョンであり、Unicodeを文字セットのユニオンとして記号化することを意図していました。 nicodeメーリングリストのKenneth Whistlerの説明 を参照してください。

121

Unicode標準では、コードポイントと文字名について説明するための表記法が必要です。それは、少なくとも The Unicode Standard、バージョン2.0までさかのぼって、4つ以上の16進数字が続く "U +"の規則を採用しました。 、1996年に発行(出典:アーカイブPDF UnicodeコンソーシアムWebサイトにコピー)。

「U +」表記は便利です。これは、16進数をオクテット、無制限の16ビット量、または他のエンコーディングの文字ではなく、Unicodeコードポイントとしてマークする方法を提供します。テキストの実行に適しています。 「U」は「Unicode」を示唆しています。

Unicodeに関する1990年初頭のソフトウェア業界の議論からの私の個人的な記憶は、「U +」の後に4桁の16進数字が続く規約がUnicode 1.0とUnicode 2.0の時代に一般的であったということです。当時、Unicodeは16ビットシステムと見なされていました。 Unicode 3.0の登場とU + 010000以上のコードポイントでの文字のエンコードにより、 "U-"の後に6桁の16進数字が続く規則が使用され、特に数字の余分な2桁が強調表示されます。 (または、逆に、「U-」から「U +」にシフトした可能性があります。)私の経験では、「U +」規則は「U-」規則よりもはるかに一般的であり、桁数を示す「U +」と「U-」の違い。

しかし、「U +」から「U-」への移行に関するドキュメントは見つかりませんでした。 1990年代からのアーカイブされたメーリングリストメッセージはそれを示す証拠を持っているはずですが、便利なものはありません。 Unicode Standard 2.0は、「Unicode文字コードの幅は16ビットで統一されている」と宣言しています。 (p。2-3)。 「個々のUnicode値はU + nnnnとして表現され、nnnnは、16進表記の4桁の数字です」(p。1-5)。サロゲート値が割り当てられましたが、U + FFFFの上に文字コードが定義されておらず、UTF-16またはUTF-32についての言及はありませんでした。 4桁の「U +」を使用しました。 Unicode Standard 3.0.0 、2000年に公開、UTF-16を定義(p。46-47)、コードを議論U + 010000以上のポイント。一部の場所では4桁の「U +」を使用し、他の場所では6桁の数字を使用しました。私が見つけた最も堅固なトレースは The Unicode Standard、version 6.0. でした、BNF構文表記の表がシンボルを定義していますU+HHHHおよびU-HHHHHHHH(p。559)。

"U +"表記は、Unicodeコードポイントまたはコード単位を表すための唯一の規則ではありません。たとえば、 Python言語は次の文字列リテラルを定義します

  • u'xyz'は、Unicode文字列、Unicode文字のシーケンスを示します
  • '\uxxxx'は、4桁の16進数で表されるUnicode文字の文字列を示します
  • '\Uxxxxxxxx'は、8桁の16進数で表されるUnicode文字の文字列を示します
14
Jim DeLaHunt

それはあなたが話しているユニコード標準のどのバージョンに依存します。 Wikipedia から:

標準の古いバージョンは同様の表記法を使用していましたが、ルールが少し異なりました。たとえば、Unicode 3.0では "U-"の後に8桁を使用し、 "U +"はコードポイントではなくコード単位を示すために正確に4桁でのみ使用できました。

8
Sean Bright

値がUnicodeであることを示すための慣例にすぎません。 16進値(0xB9またはB9h)。なぜ 0xB9ではなく0hB9(または&hB9または$B9)?それがコインが弾いた方法だからです:-)

4
Mihai Nita