未割当符号位置

未割当符号位置

目次

  1. 仕様書
  2. 予約済符号点
  3. General Category Cn
  4. 特性
  5. 処理
  6. UNASSIGNED (導出特性値)
    1. 仕様書
    2. 定義
    3. 安定性
    4. 処理モデル
    5. 関連
    6. メモ
  7. Unassigned (カテゴリー)
    1. 仕様書
    2. 定義
    3. 文脈
  8. 関連
  9. メモ

仕様書#

予約済符号点#

[19] 予約済 (よやくずみ) (Reserved) は、 符号点型の1つです。 >>35 D10a 未指示済符号点 (undesignated code point) (未割当符号点) です。 >>53

[20] 予約済符号点 (よやくずみふごうてん) (reserved code point) , 未割当符号点 (みわりあてふごうてん) (unassigned code point) は、 将来の割当のために予約されている Unicode符号点です。 >>35 D15

[21] サロゲート符号点非文字は、 割当済符号点とみなされますが、 割当済文字ではありません。 >>35 D15 抽象文字が割当できないまたは割当されていないのですが、 しかし未割当符号点ではありません。

[28] ある時点で予約済符号点であっても、 将来の版の Unicode では抽象文字が割り当てられることがあります。 >>46 C3

General Category Cn#

[34] General Category Cn は、 抽象文字に割り当てられていない (not assigned to abstract character) 符号点であり、 非文字未割当符号点が含まれます。 >>53

[36] 抽象文字に割り当てできない (cannot) 符号点たるサロゲート符号点は、 別に Cs に含まれています。

特性#

[25] 未割当済符号点にも、他の符号点同様に特性値があります。

[26] 全体共通の既定値が設定されている場合もあれば、 ブロックなどの単位で一括して設定された既定値となっていることもあります。

[27] 未割当済符号点抽象文字が割当されたときに特性値が変更されるかどうかは、 特性によって違います。

[18] 特性 Age の値 unassgined は、 未割当済符号点を表します。

処理#

[22] 適合処理は、 用途 (use) 指定 (designate) されていない符号点が現れたことを示す (例えばレンダリング時に欠けたることを示すグリフ (missing glyph) を示したり、 ストリーミングプロトコル中に適切なエラーを信号したりする) ことができます。 >>35

[23] しかし適合処理は、 未割当済符号点抽象文字として解釈してはなりません。 >>46 C3, >>35

[24] 空き領域を勝手に使ってはいけないというのは当然の規定のように思えますが、 過去の文字コードでは勝手に外字割当用に使われることがよくありました。 (規格上禁止されていても平然と使われることもありました。) Unicode でもそのような実装例がないわけではありません。

[29] 未割当済符号点であっても将来の改訂で抽象文字が割り当てられる可能性があることに鑑み、 注意しつつ一般的な取り扱いをしたほうが、 将来の版の Unicode に基づくデータに対して頑強となります。 >>46 C3

[30] プロトコルアプリケーションによっては未割当済符号点が含まれる文字列をエラーとすることがあります。 識別子系の定義で除外されていることが特に多いようです。 そうした仕様にしてしまうと、 将来の版の Unicode で追加された文字が、 仕様や実装の改訂まで使えなくなってしまいます。 更新されないで放置される仕様や実装があると、 相互運用性に支障が出てしまいます。

[31] 逆に未割当済符号点まで認めてしまっているために、 将来の Unicode の版で特殊な用途にその符号点が使われてしまい、 それを認めていることが都合が悪くなってしまうことがあります。

UNASSIGNED (導出特性値)#

[1] UNASSIGNED は、その符号位置Unicode未割り当てであることを表す導出特性値です。 >>2

仕様書#

定義#

[8] Unassigned カテゴリーの符号位置導出特性値UNASSIGNED です。

安定性#

[9] UNASSIGNED だった符号位置文字が割り当てられると、他の PVALIDCONTEXTDISALLOWED導出特性値が変わります。

[10] 既存の符号位置から文字が削除されることは無いとされていますが、もしされた場合は RFC 5894 によれば DISALLOWED となるようです。

処理モデル#

[11] 登録lookup も、 UNASSIGNED符号位置が含まれていれば失敗します。 これは、もし lookup だけでも認めてしまうと、将来文字が割り当てられて CONTEXT になったとき、条件によっては使用が認められないため、あるいは DISALLOWED になったとき、使用が認められないため、将来の版に対応した実装では lookup できないラベルを古い版に対応した実装では lookup できてしまい、都合が悪いからです。 >>7>>15

関連#

[12] IDNA2003 では AllowUnassigned フラグがありました。通常 lookup ではこのフラグは未設定であり、 UNASSIGNED符号位置を含んでいても失敗にはなりませんでした。

メモ#

[16] 既に主要な用字系Unicode に含められているので、今後追加される文字は古代文字などであって >>11 のような問題は無視できるため、未割当であっても lookup できるようにするべきという主張もあります。 しかし実際には「主要な用字系は既に含まれている」と言われ続けていますし、 現実に漢字はどんどん追加されており、その主張は成り立たないとされています。 >>15

Unassigned (カテゴリー)#

[3] Unassigned は、 Unicode文字が (まだ) 割り当てられていない符号位置を含むカテゴリーです。 >>4

仕様書#

定義#

[5] General_CategoryCn であり、かつ Noncharacter_Code_Point に含まれない符号位置が、 Unassigned に含まれます。 >>4

文脈#

[43] PRECIS でも使われます。 >>42

関連#

[40] Perl正規表現 \p において Unicode符号点でないもの (U-00110000 以上) は (何の変哲もない) 未割当符号点のように扱われます。 \p

[41] U+FFF0

メモ#