Unicodeにいくつかの予約文字コードがあるのはなぜですか?カンナダ語とタミル
語
の2つの言語についてはUnicodeを参照してください。どちらの言語も非常に古く、これらの言語に新しいキャラクターを追加する機会はないと思います。
編集:それでは、なぜ彼らはそれを予約文字コードにすることによっていくつかの文字コードを無駄にしているのですか?
各言語の文字セットの最後に予約済みの文字コードを配置しないのはなぜですか?
1 に答える
これは、Unicode コンソーシアムが割り当てられたブロック、スクリプト、およびコード ポイントを配布する方法に関係しています。たとえば、Block=Tamil
では、最初は次のように実行されます。
$ unichars '\p{Block=Tamil}' | head -20
U+00B82 ◌ஂ GC=Mn SC=Tamil TAMIL SIGN ANUSVARA
U+00B83 ஃ GC=Lo SC=Tamil TAMIL SIGN VISARGA
U+00B85 அ GC=Lo SC=Tamil TAMIL LETTER A
U+00B86 ஆ GC=Lo SC=Tamil TAMIL LETTER AA
U+00B87 இ GC=Lo SC=Tamil TAMIL LETTER I
U+00B88 ஈ GC=Lo SC=Tamil TAMIL LETTER II
U+00B89 உ GC=Lo SC=Tamil TAMIL LETTER U
U+00B8A ஊ GC=Lo SC=Tamil TAMIL LETTER UU
U+00B8E எ GC=Lo SC=Tamil TAMIL LETTER E
U+00B8F ஏ GC=Lo SC=Tamil TAMIL LETTER EE
U+00B90 ஐ GC=Lo SC=Tamil TAMIL LETTER AI
U+00B92 ஒ GC=Lo SC=Tamil TAMIL LETTER O
U+00B93 ஓ GC=Lo SC=Tamil TAMIL LETTER OO
U+00B94 ஔ GC=Lo SC=Tamil TAMIL LETTER AU
U+00B95 க GC=Lo SC=Tamil TAMIL LETTER KA
U+00B99 ங GC=Lo SC=Tamil TAMIL LETTER NGA
U+00B9A ச GC=Lo SC=Tamil TAMIL LETTER CA
U+00B9C ஜ GC=Lo SC=Tamil TAMIL LETTER JA
U+00B9E ஞ GC=Lo SC=Tamil TAMIL LETTER NYA
U+00B9F ட GC=Lo SC=Tamil TAMIL LETTER TTA
それらは、4、8、または 16 コード ポイントの連続する行をすべて同じ「種類」の文字に予約する傾向があります。はい、そこにはギャップがありますが、ファイルシステムで、セクター (またはブロック内に個別のセクターがない場合はブロック) を 1 つのファイルに割り当てると、そのファイルがそのファイル内のすべてを使用しない場合でも同様です。 (最終)セクターでは、未使用のバイトを他のプロセスに渡さないでください。とにかく、物事はブロック境界にパディングされる傾向があります。
コードが不足するリスクがあるわけではありません。
これは、そのブロック内の最初に割り当てられたコード ポイントによって示されるように、「Signs」で始まる割り当てられた領域の始まりです。ギャップは、ある種類の文字から別の種類の文字への変化を表す場合があります。ブロック内の最初の 5 つのコード ポイントのプロパティをチェックアウトすると、これらの割り当てられていないコード ポイントにも適切なブロック プロパティがあることがわかります。
$ uniprops -a U+00B80 U+00B81 U+00B82 U+00B83 U+00B84 U+00B85
U+0B80 ‹U+0B80› \N{U+0B80}
\pC \p{Cn}
All Any InTamil C Other Cn Unassigned Zzzz Unknown
Age=Unassigned Bidi_Class=L Bidi_Class=Left_To_Right BC=L Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered
CCC=NR Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=Unknown LB=XX Line_Break=XX Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=Unassigned IN=Unassigned Script=Unknown SC=Zzzz Script=Zzzz Sentence_Break=Other SB=XX
Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX
U+0B81 ‹U+0B81› \N{U+0B81}
\pC \p{Cn}
All Any InTamil C Other Cn Unassigned Zzzz Unknown
Age=Unassigned Bidi_Class=L Bidi_Class=Left_To_Right BC=L Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered
CCC=NR Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=Unknown LB=XX Line_Break=XX Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=Unassigned IN=Unassigned Script=Unknown SC=Zzzz Script=Zzzz Sentence_Break=Other SB=XX
Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX
U+0B82 ‹◌ஂ› \N{TAMIL SIGN ANUSVARA}
\w \pM \p{Mn}
All Any Alnum Alpha Alphabetic Assigned InTamil Tamil Is_Tamil Case_Ignorable CI M Mn Gr_Ext Grapheme_Extend Graph GrExt ID_Continue IDC
Mark Nonspacing_Mark Print Taml Word XID_Continue XIDC X_POSIX_Alnum X_POSIX_Alpha X_POSIX_Graph X_POSIX_Print X_POSIX_Word
Age=1.1 Bidi_Class=Nonspacing_Mark BC=NSM Bidi_Class=NSM Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered
CCC=NR Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=EX
Grapheme_Cluster_Break=Extend GCB=EX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=T Joining_Type=Transparent JT=T Line_Break=CM Line_Break=Combining_Mark LB=CM Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=1.1 IN=1.1 Present_In=2.0 IN=2.0 Present_In=2.1 IN=2.1 Present_In=3.0 IN=3.0 Present_In=3.1 IN=3.1
Present_In=3.2 IN=3.2 Present_In=4.0 IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1 Present_In=5.2 IN=5.2
Present_In=6.0 IN=6.0 Script=Tamil SC=Taml Script=Taml Sentence_Break=EX Sentence_Break=Extend SB=EX Word_Break=Extend WB=Extend
U+0B83 ‹ஃ› \N{TAMIL SIGN VISARGA}
\w \pL \p{L_} \p{Lo}
All Any Alnum Alpha Alphabetic Assigned InTamil Tamil Is_Tamil L Lo Gr_Base Grapheme_Base Graph GrBase ID_Continue IDC ID_Start IDS Letter
L_ Other_Letter Print Taml Word XID_Continue XIDC XID_Start XIDS X_POSIX_Alnum X_POSIX_Alpha X_POSIX_Graph X_POSIX_Print X_POSIX_Word
Age=1.1 Bidi_Class=L Bidi_Class=Left_To_Right BC=L Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered CCC=NR
Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=AL Line_Break=Alphabetic LB=AL Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=1.1 IN=1.1 Present_In=2.0 IN=2.0 Present_In=2.1 IN=2.1 Present_In=3.0 IN=3.0 Present_In=3.1 IN=3.1
Present_In=3.2 IN=3.2 Present_In=4.0 IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1 Present_In=5.2 IN=5.2
Present_In=6.0 IN=6.0 Script=Tamil SC=Taml Script=Taml Sentence_Break=LE Sentence_Break=OLetter SB=LE Word_Break=ALetter WB=LE
Word_Break=LE
U+0B84 ‹U+0B84› \N{U+0B84}
\pC \p{Cn}
All Any InTamil C Other Cn Unassigned Zzzz Unknown
Age=Unassigned Bidi_Class=L Bidi_Class=Left_To_Right BC=L Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered
CCC=NR Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=Unknown LB=XX Line_Break=XX Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=Unassigned IN=Unassigned Script=Unknown SC=Zzzz Script=Zzzz Sentence_Break=Other SB=XX
Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX
U+0B85 ‹அ› \N{TAMIL LETTER A}
\w \pL \p{L_} \p{Lo}
All Any Alnum Alpha Alphabetic Assigned InTamil Tamil Is_Tamil L Lo Gr_Base Grapheme_Base Graph GrBase ID_Continue IDC ID_Start IDS Letter
L_ Other_Letter Print Taml Word XID_Continue XIDC XID_Start XIDS X_POSIX_Alnum X_POSIX_Alpha X_POSIX_Graph X_POSIX_Print X_POSIX_Word
Age=1.1 Bidi_Class=L Bidi_Class=Left_To_Right BC=L Block=Tamil Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered CCC=NR
Canonical_Combining_Class=NR Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group
JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=AL Line_Break=Alphabetic LB=AL Numeric_Type=None NT=None
Numeric_Value=NaN NV=NaN Present_In=1.1 IN=1.1 Present_In=2.0 IN=2.0 Present_In=2.1 IN=2.1 Present_In=3.0 IN=3.0 Present_In=3.1 IN=3.1
Present_In=3.2 IN=3.2 Present_In=4.0 IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1 Present_In=5.2 IN=5.2
Present_In=6.0 IN=6.0 Script=Tamil SC=Taml Script=Taml Sentence_Break=LE Sentence_Break=OLetter SB=LE Word_Break=ALetter WB=LE
Word_Break=LE
割り当てられた他のブロックを見ると、同じようなことがわかります。ブロックを無関係なものにスライスするのは意味がありません。
おっしゃるとおり、スペースがなくなるわけではないので、ここで何が問題なのかわかりません。
ところで、私のUnicode Command-Line Toolchestからunichars、 uniprops、 uninamesなどの Unicode 探索および処理ツールを取得できます。そこから個別に、またはCPAN suiteからスイート全体を入手できます。Unicode::Tussle