UnicodeコードポイントがU+
<codepoint>
?
例えば、 U+2202
は文字∂を表します。
何故なの U-
(ダッシュまたはハイフン文字)または他に何か?
文字「U +」は、マルチセットユニオン「⊎」のU + 228E文字(プラス記号が内部にあるUのようなユニオンシンボル)のASCII化されたバージョンであり、Unicodeを文字セットのユニオンとして記号化することを意図していました。 nicodeメーリングリストのKenneth Whistlerの説明 を参照してください。
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文字の文字列を示しますそれはあなたが話しているユニコード標準のどのバージョンに依存します。 Wikipedia から:
標準の古いバージョンは同様の表記法を使用していましたが、ルールが少し異なりました。たとえば、Unicode 3.0では "U-"の後に8桁を使用し、 "U +"はコードポイントではなくコード単位を示すために正確に4桁でのみ使用できました。
値がUnicodeであることを示すための慣例にすぎません。 16進値(0xB9
またはB9h
)。なぜ 0xB9
ではなく0hB9
(または&hB9
または$B9
)?それがコインが弾いた方法だからです:-)