4 に答える
文字「U+」は、MULTISETUNION「⊎」U+228E文字(内部にプラス記号が付いたU字型の和集合記号)のASCII化バージョンであり、Unicodeを文字セットの和集合として象徴することを目的としています。UnicodeメーリングリストのKennethWhistlerの説明を参照してください。
Unicode標準では、コードポイントと文字名について説明するためにいくつかの表記法が必要です。「U+」の後に4桁以上の16進数が続き、少なくとも1996年に公開されたUnicode Standardバージョン2.0.0までさかのぼります(出典:UnicodeコンソーシアムWebサイトのアーカイブされたPDFコピー)。
「U+」表記が便利です。これは、16進数を、オクテット、無制限の16ビット量、または他のエンコーディングの文字ではなく、Unicodeコードポイントとしてマークする方法を提供します。テキストの実行に適しています。「U」は「Unicode」を示します。
Unicodeに関する1990年初頭のソフトウェア業界の議論からの私の個人的な思い出は、Unicode1.0およびUnicode2.0の時代には、「U+」の後に4桁の16進数が続くという慣習が一般的だったということです。当時、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標準3.0.0、2000年に公開され、UTF-16(p。46-47)を定義し、U+010000以上のコードポイントについて説明しました。ある場所では4桁、他の場所では6桁の「U+」を使用しました。私が見つけた最も確固たる痕跡は、Unicode標準バージョン6.0.0にあり、BNF構文表記の表で記号U+HHHH
とU-HHHHHHHH
(p。559)が定義されています。
「U+」表記は、Unicodeコードポイントまたはコード単位を表すための唯一の規則ではありません。たとえば、Python言語は次の文字列リテラルを定義します。
u'xyz'
Unicode文字列、Unicode文字のシーケンスを示す'\uxxxx'
4桁の16進数で示されるUnicode文字の文字列を示します'\Uxxxxxxxx'
8桁の16進数で示されるUnicode文字の文字列を示します
それはあなたが話しているUnicode標準のバージョンに依存します。ウィキペディアから:
古いバージョンの標準では、同様の表記法が使用されていましたが、規則が少し異なります。たとえば、Unicode 3.0では「U-」の後に8桁を使用し、「U +」を正確に4桁で使用して、コードポイントではなくコードユニットを示すことができました。
値がUnicodeであることを示すのは単なる慣例です。16進値(0xB9
またはB9h
)の場合は「0x」または「h」に少し似ています。なぜ0xB9
、そうではない0hB9
(または&hB9
または$B9
)?それがコインが弾いたからといって:-)