文字の名前

名前 (文字コード)

[10] Unicode および近年の公的文字コード規格は、文字ラテン文字その他による名前 (name) を割り当てています。 文字名前は、文字を一意に特定するもので、複数の符号化文字集合に属する文字同士の等価性は、 文字名前が一致するか否かに拠るとされています。

[59] 例えば「A」の名前LATIN CAPITAL LETTER A です。

仕様書

[11] 文字名前について横断的に定義した仕様は存在しませんが、事実上唯一現存する符号化文字集合である Unicode における名前の定義 (>>9) が最も規範的なものと考えられますし、 最も詳細に説明もされています。次節に示すように、 各種符号化文字集合規格にもそれぞれの定義が含まれています。

意味

[30] Unicode において文字の名前 (character name) とは、文字Name 特性 (略称 na) の値のこと >>9 をいい、次のように定義されています。

[31] ハングル字母
符号位置から機械的に決定される、音節の組み合わせを表す名前です。
[32] 漢字
CJK UNIFIED IDEOGRAPH- または CJK COMPATIBILITY IDEOGRAPH- の後に16進数4桁または6桁の符号位置を続けた名前です。
[34] 制御文字私用域サロゲート非文字、予約の符号位置
空文字列です。
[33] その他
UnicodeData.txt に書かれている名前です。

[35] 名前空文字列であることを「名前がない」ともいいます >>9

[51] 名前は、その文字の一般的な用法や形状を表しています。 しかし、名前はその文字の用法やグリフを制限することを意図したものではないと解されています。

[53] 例えば複数の用法を持つ文字では、その一部が名前に使われていたりします。 また、 bidi により鏡像化する文字なのに LEFTRIGHT名前に含まれていて、名前と表示が真逆になる文字すらあります。

[52] また、名前はあくまで符号化文字集合における文字の識別を目的としたもので、 その文脈を離れて一般的な文字の正式な名称を定めるものではないというのが通常の理解です。

構文

[20] Unicode文字名前は次の正規表現による擬似コードの条件すべてに一致する文字列とされています >>9

  • [16] /^[A-Z0-9\u0020-]+$/
  • [17] not /^[0-9]/ and not /\u0020[0-9]/
  • [18] not /^-/ and not /-$/ and not /--/
  • [19] not /^\u0020/ and not /\u0020$/ and not /\u0020\u0020/

[21] U+0020- が連続しているケースや、 - の有無によって別の文字を表すケースもあります。

[46] 長さの上下限はないようです。現時点で最短の名前は2文字です。略号を除けば4文字が最短かもしれません。

安定性

[15] Unicode文字名前文字名別名 (>>25)、 名前付き文字列名前 (>>26) は変更されることはなく、 また互いに異なる値である >>9 とされています。

[24] ただし過去には何度か変更されています。

[25] 文字の名前が割り当てられた後に誤りが発覚した場合、 文字名別名 (character name alias) が割り当てられます。 文字名別名文字の名前と同じ名前空間を共有していています。 >>9

[63] 名前付き文字列 (>>26) については削除された例 (>>61) があります。

名前付き文字列

[26] 文字の連続に対しても名前が割り当てられることがあり、 名前付き文字列 (named character sequence) と呼ばれています。 名前付き文字列文字の名前と名前空間を共有しています。 >>9

制御文字の名前

[29] UnicodeC0C1DELETE制御文字名前を与えていませんが、 別名としてそれらの符号位置制御文字名前を与えています >>9

[45] 制御文字やそれに近い特殊な文字にはラテン文字数字2~4文字の略号が定義されていることがありますが、 これも別名となっているようです。ただし LS0, LS1 のように含まれていないものもあるようです。

[48] ISO/IEC 6429 / JIS X 0211制御文字でないものも含め制御機能に対して同様の名前を定義しています。

[49] ISO/IEC 2022 / JIS X 0202エスケープシーケンスの一部に対して同様の名前を定義しています。

符号位置ラベル

[36] 名前のない符号位置に関しても便宜上符号位置ラベル (code point label) が用意されています。 符号位置ラベル小文字ハイフン16進数で表されます。名前でないことを明確にするために <> で括っても良い >>9 とされており、 Unicode Character Database ではそのように表記されています。

[58] 名前符号位置ラベルで、 U+0000-U+10FFFF のすべての符号位置を表せます。

[37] 符号位置ラベルは4-6桁の符号位置を使って次のように表されます >>9

[57] 予約は、当然ながら文字が割り当てられれば使われない名前となります。 それ以外はおそらく今後変更されることはないと思われますが、それが保証されているのかはわかりません。

名前と言語

[12] ISO/IEC英語仏語の仕様書が存在するため、文字名称についても英語仏語の2種類が存在しています。

[13] Unicode英語名前を採用しており、ISO/IEC 10646英語名前と一致するとされています >>9

[14] JIS英語文字の名前の他に日本語通用名称を定義していますが、 前者が規定であるのに対し、後者は参考とされています。 日本語通用名称に特に命名規則は無いようで、文字の名前と直接の関係はありません。

[8] JIS C 0456:2005 (IEC 61286:2001 の翻訳規格ISO-IR 181 に相当) は附属書 CJIS X 0221 との対応が載っていますが、そこで UCS 側の文字名前まで日本語訳されています。

[54] その他各国の規格では、規定または参考として自国の公用語の名前を挙げていることがあります。

[56] 実用上は Unicode が用いる英語の名前だけ考慮すれば十分です。 例えば正規表現文字の名前を与える場合、 Unicode名前が使われています。

一覧

[44] 文字の名前の一覧は Unicode Character DatabaseNamesList.txt <http://www.unicode.org/Public/UCD/latest/ucd/NamesList.txt> に含まれています。

[47] CJK COMPATIBILITY IDEOGRAPHS は含まれていますが、 CJK UNIFIED IDEOGRAPHSHANGUL SYLLABLES は含まれていません。

[28] 文字名別名 (>>29制御文字名前>>45 の略号を含む。) の一覧は Unicode Character DatabaseNameAliases.txt <http://www.unicode.org/Public/UCD/latest/ucd/NameAliases.txt> に含まれています。

[27] 名前付き文字列の一覧は Unicode Character DatabaseNamedSequences.txt <http://www.unicode.org/Public/UCD/latest/ucd/NamedSequences.txt> に含まれています。

[61] NamedSequencesProv.txt には、「まだ完全に承認されていない」 名前付き文字列の定義が含まれています >>62。更に、 以前定義されていてその後削除された名前付き文字列が注釈として含まれています。

怪しい名前

[64] Unicode に統一されつつあった時代の文字コード関連仕様は、 Unicode符号位置名前との関係を記述していますが、 たまに怪しいケースがありました。 (Unicode にない (または当時はなかった) 文字に独自の名前を割り当てている場合もありましたが、 それは除きます。)

文脈

[65] 文字の名前を使う場面

歴史

[5]

5.3 文字の名前
この規格は、各文字に一つの名前を割り当てる。 さらに、制御文字並びに SPACE (スペース) 及び DELETE (削除) について、その文字略号 (頭字語) を定義する。ここでは、文字名前は、 英大文字SPACE 及びハイフンだけで表現する。略号は、 英大文字及び数字を用いる。規格本体の各国語への翻訳でも、 略号及びこの記法は、保たれなければならない。 JIS X 0202:1998

[6]

4.3 名前
この規格では、規定するすべての文字に対して名前を割り当てる。 さらに、文字 SPACE (スペース) 及び文字 DELETE (抹消) に対する略号を規定する。 文字名前表記には、ラテン大文字 (AZ)、スペース及びハイフンだけを使用する。 略号には、ラテン大文字だけを使用する。

図形文字を示すために付けられた名前は、 文字の慣習的な意味を反映するようにしている。しかし、 この規格は、図形文字の意味を定義しないし、制限もしない。

参考 JIS X 0211 (符号化文字集合制御機能) で規定する制御機能略号には、 ラテン大文字及び数字だけを使用している。 JIS X 0201:1997

[1]

文字の名前
この規格群は、すべての文字に意的な名前を付ける。 命名の基準は、次のいずれかとする。
  • a) 文字の慣例的な意味を示す。
  • b) 対応する図形記号の形を表す。
  • c) 中国、日本及び韓国 (CJK) 統合漢字については、 27. に示す規則に従う。

a) 及び b) の場合に、文字の名前を構成するために用いる指針を附属書 K (参考) に示す。 (JIS X 0221‐1:2001 6.4)

[3]

この規格群で規定する図形文字は、その名前で一意に識別する。名前が異なっていても、図形文字を可視化した図形記号が常に異なるわけではない。類似の図形記号をもつ図形文字の霊としては、 LATIN CAPITAL LETTER AGREEK CAPITAL LETTER ALPHA 及び CYRILLIC CAPITAL LETTER A がある。 (JIS X 0221‐1:2001 17. より)

[55] ISO/IEC 2022 (図形文字集合の一意な符号化参照):

このような文字は、二つの集合を定義する仕様又は ISO符号化文字集合の国際登録簿で同じ名前をもつ場合、 同じ文字とみなされる。

メモ

[2] >>1 で、 CJK 統合漢字や CJK 互換漢字の名前のどの辺が意的な名前なのでしょう。

[4] 同じく 10646 の 19 によれば、文字名称の LEFTRIGHT は、 (鏡像文字の場合) 「左向き」、「右向き」 ではなく「開き」、「閉じ」を意味するのだそうです。

10646 と統合する前の Unicode では名前も OPEN とか CLOSE だったのに。

[7] >>6 JIS X 0201 自体で定義されている文字が使われているのだと仮定すると、 スペースSPACEハイフンHYPHEN-MINUS に対応します。