\N

名前 (文字コード)

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

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

仕様書

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

意味

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

[31] ハングル音節
符号位置から機械的に決定される、ハングル字母の組み合わせを表す名前です。 必要な情報は Jamo.txt に書かれています >>77。 版による違いがあります。 ハングル音節
[32] 漢字 (CJK ideographs)
CJK UNIFIED IDEOGRAPH- または CJK COMPATIBILITY IDEOGRAPH- の後に16進数4桁または6桁の符号位置を続けた名前です。
Tangut ideographs, Khitan Small Script ideographs, Nushu ideographs
規則的に決められた名前です >>77。
[34] 制御文字、私用域、サロゲート、非文字、予約の符号位置
空文字列です。
[33] その他
UnicodeData.txt に書かれている名前です >>77。

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

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

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

[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文字が最短かもしれません。

名前の比較

[117] 文字の名前の比較の方法は UAX #44 で規定されています。 >>79

[119] 正規表現の \p や \N で使われます。

安定性

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

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

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

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

図形文字の名前

[138] すべてのUnicode文字 (サロゲート符号点, 非文字, 未割当符号点, 私用文字, 制御文字を除く。) には名前が割当てられています。

[137] SP や NBSP のように、図形文字であっても特殊な文字に対しては、 制御文字の場合 (>>45) のように略号が定められています。

[139] Unicode の文字の名前は ISO/IEC 10646 の文字の名前と一致しています。 ただし ISO/IEC 10646 の文字の名前は後に () と注釈が付いていることがあります。

[140] Unicode の現在の文字の名前は Unicode 1.1 以来のものです。 Unicode 1.0 の文字の名前は多くが違っていました。 対応表は UCD に現在も収録されています。

[141] 概ね20世紀末 (平成時代初期頃) の ISO文字コード規格は ISO/IEC 10646 と共通の文字の名前を使っていました。 それ以前も似たような名前や説明を与えていましたが、 完全に体系化されたものにはなっていませんでした。

[142] 各国の国内規格もおおむね同様の状況ですが、 名前が各国語に翻訳されていたり、漢字のように名前がなかったりしました。 ISO/IEC 10646 にも仏語の文字の名前があります。 (>>12 参照)

[143] 国際規格でも国内規格でもない Unicode 以前の文字コード (企業の独自符号など) には、たとえ仕様書のようなものがあったとしても、 文字の名前のようなものはないことが多いです。 ただ Unicode の時代になってからは変換表という形で Unicode の文字の名前との対応関係が確立された場合が多いです。

[144] 国内規格は Unicode にない文字に独自の名前を定めていることがあります。

[145] 公的な標準化団体の仕様以外で独自の文字の名前を定めている例もいくつかあります。

[146] 主要な文字の名前の定義:

怪しい名前

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

[67] 代替名称 重複符号化

[69] JIS X 0213:2000 は Unicode にない文字に独自の名前を与えていました。 JIS X 0213:2004 で Unicode の名前に改正されました。 括弧付きUCS

[70] JIS X 4051:2004 は JIS X 0213:2000 の名前を使っていました。

[112] ARIB STD-B62 は JIS X 0213:2004 の代替名称を使っています。


[114] 文字の名前は変更しないことになっているので、 後に誤りとわかってもそのままになっていることがあります。

[115] 蘇州号碼はおかしな名前になっています。

[113] 合成用ハングル字母のうち4つは文字の名前が誤りとわかり、 ISO/IEC 10646:2003 Amd.5 で文字の名前の後に括弧書きの注釈を加える形で訂正されました。 KS X 1026-1 (8.2)


[132] 関連(しない): 怪しい日本語

名前付き文字列

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

[136] Unicode / ISO/IEC 10646 の他には JIS X 0213 がいくつか規定しています。 JIS X 0213 のほとんどの名前付き文字列は Unicode のものと等しいですが、 2つは違う名前です。 JIS X 0213

制御文字の名前

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

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

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

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

[128] 001.pdf, , https://itscj.ipsj.or.jp/ir/001.pdf#page=2

[129] >>128 この時代は TC10 のように下付き文字が使われていました。

[130] G0 のように符号要素の数字も下付きでした。

[131] null, , https://www.unicode.org/L2/L2011/11281-control-aliases.txt

符号位置ラベル

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

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

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

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

モード

[91] ISO/IEC 2022 や ISO/IEC 6429 は、 制御機能によって生じる状態のそれぞれにも、 文字の名前と同じような形式の名前が与えられています。

名前と言語

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

[96] ただし、 ISO/IEC 10646 の仏語版は本段落執筆時点で20年近く出版されておらず、 今後も再開の可能性はほとんどなさそうです。 ISO/IEC 10646

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

[100] 近年 Unicode は仏語版の符号表も公開しています。 そちらでは仏語の文字の名前が使われています。 >>98 仏語の文字の名前は規定の一部ではないとされています。 >>97 仏語の文字の名前は公式な UCD に含まれていませんが、 符号表の元になったと思しきデータファイルが非公式に公開されています >>101, >>99。 仏語版については The Unicode Standard

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

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

[102] 中華民国91年版の CNS 14649-1 (中華民国の ISO/IEC 10646) は文字の名前を台湾漢語に翻訳していました。

[111] KS X 1026-1 は ISO/IEC 10646 のハングルに英語の文字の名前と韓国語の名前を併記しています。 KS X 1026-1

[104] CNS 14649:2017 は翻訳を諦めたようで、 オリジナルの英語の名前のままになっています。 (本文中では英語名に括弧付きで漢語名が付されていることもあります。)

[159] I.S. 434 の符号化文字集合は左側が ASCII、右側が独自ですが、 規格票は英語とアイルランド語の対訳形式で、 すべての図形文字と SPACE と DELETE の文字の名前がそれぞれの言語で示されています。 SPACE と DELETE には略号もあり、 DELETE はアイルランド語では略しても DEL にはなりませんが、どちらも SP, DEL となっています。

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

[110] KS X 1001 は韓国語の名前を与えています。

[116] TCVN 6909 は越南語の名前を与えています。 TCVN 8271 は越南語の名前と英語の文字の名前の両方を示しています。

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

一覧

[44] 文字の名前の一覧は Unicode Character Database の NamesList.txt に含まれています。

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

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

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

[135] 名前付き文字列の追加履歴も注釈として書かれていますが、 「このうちいくつかはその前からあった」のような書き方も混じっていて、 完全な履歴を負うには古いUnicodeの版のファイルを調べる必要があります。

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

[134] 予備登録から本登録に至るまでの間に定義が改められることがあります。 例えば >>133 には現在本登録された名前付き文字列の古い定義を見ることが出来ます。

NamesList.txt

[73] NamesList.txt >>72 には文字の名前の情報が含まれています。

[74] その他符号表に含まれている、関係する他の文字の情報なども含まれています。 NamesList.html に構文の説明があります。 >>75

[106] このファイルは符号表 >>105 PDF の生成に使う元データとされます。

[107] このファイル >>76 の冒頭には次のように書かれています。

	This file is semi-automatically derived from UnicodeData.txt and
	a set of manually created annotations using a script to select
	or suppress information from the data file. The rules used
	for this process are aimed at readability for the human reader,
	at the expense of some details; therefore, this file should not
	be parsed for machine-readable information.

すなわち、 UnicodeData.txt とその他から自動生成されたもので、 機械可読情報の抽出のため構文解析するべきものではないというのです。

[108] ところが実際にはこのファイルは構文が定義されている >>75 (のでそれに従い利用できるよう整備されている) のですし、このファイルを使う応用も少なくないようです。

[109] そしてこのファイルには UnicodeData.txt にない情報も入っていて、 それが UCD の他のファイルには入っていないらしいのです。 (おそらくこのファイル生成用の元データファイルは非公開なのでしょう。)

鏡像文字

[4] 括弧のように左横書きと右横書きで字形が変わる文字は、 左横書き用の名前がついています。 書字方向依存グリフ

回転

[81] 元の字形を回転、反転させた字形のとき、それを表す文字の名前がつけられることがあります。

[83] 次のような命名となっています >>82。

[89] reversed に似て少し違う概念に鏡像化があります。

文脈

[93] Unicode符号点や符号化済文字の記述 (参照) に使われます。 符号点

[71] 仕様書の参照以外にもプロトコル要素として使われることがあります。

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

[162] The TECkit Language - TECkit_Language.pdf, , https://software.sil.org/downloads/r/teckit/TECkit_Language.pdf#page=6

[163] >>162 文字の名前を英数字以外 _ に置換して、大文字・小文字不区別で利用。

正規表現

[120] Unicode正規表現 \N, \p{name} >>118, \p{Named_Sequence}

[122] UTS #18: Unicode Regular Expressions ( ( 版)) http://www.unicode.org/reports/tr18/#Individually_Named_Characters

[123] charnames - search.cpan.org ( ( 版)) http://search.cpan.org/dist/perl/lib/charnames.pm

[124] perlunicode - Unicode support in Perl - Perldoc Browser, https://perldoc.perl.org/perlunicode#Comparison-of-%5CN%7B...%7D-and-%5Cp%7Bname%3D...%7D

[121] perlunicode - Unicode support in Perl - Perldoc Browser, https://perldoc.perl.org/perlunicode#Wildcards-in-Property-Values

[125] UTS #18: Unicode Regular Expressions, , https://unicode.org/reports/tr18/#optional_properties

歴史

[90] Standard ECMA-6 7-Bit coded Character Set, 6th Edition - December 1991, Reprinted in electronic form in August 1997, , http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-006.pdf#page=12

5.3 Names

This ECMA Standard assigns a unique name to each character. In addition, it specifies an acronym for each control character and for the characters SPACE and DELETE, and a graphic symbol for each graphic character. By convention, only capital letters, space and hyphen are used for writing the names of the characters. For acronyms only capital letters and digits are used. It is intended that the acronyms and this convention be retained in all translations of the text.

The names chosen to denote graphic characters are intended to reflect their customary meaning. However, this ECMA Standard does not define and does not restrict the meanings of graphic characters. Neither does it specify a particular style or font design for the graphic characters when imaged.

[5]

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

[6]

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

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

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

[66] JIS X 0208:1997

5.3 名前 この規格では, 規定するすべての文字に対して名前を割り当てる。さらに, 文字 SPACE(ス ペース) 及び文字 DELETE (抹消) に対する略号を規定する。文字の名前の表記には、ラテン大文字 (A 〜Z), スペース及びハイフンだけを使用する。略号には, ラテン大文字だけを使用する。図形文字を示す ために付けられた名前は, 文字の慣習的な意味を反映するようにしている。ただし, 漢字の名前は, CJK UNIFIED IDEOGRAPH-XXXX と表す。ここで, XXXX は, JIS X 0221 の16進表記の2オクテット符号化 表現とする。

備考 この規格の漢字の区点位置の解釈 (6.6 参照) は, JIS X 0221 のそれと必ずしも同一ではない。

参考 JIS X 0211 で規定される制御機能の略号には, ラテン大文字及び数字だけを使用している。

この規格は, 図形文字の意味及び用途を定義しないし, 制限もしない。

附属書6

e) CJK 文字の名前 (本体5.3参照)。ただし, 先頭の CJK UNIFIED IDEOGRAPH- は省略して示した。

[68] JIS X 0213:2000

5.3 名前 この規格では, 規定するすべての文字に対して名前を割り当てる。さらに, 文字 SPACE(ス ペース) 及び文字 DELETE (抹消) に対する略号を規定する。文字の名前の表記には、ラテン大文字 (A 〜Z), スペース及びハイフンだけを使用する。略号には, ラテン大文字だけを使用する。図形文字を示す ために付けられた名前は, 文字の慣習的な意味を反映するようにしている。ただし, 漢字の名前は, CJK UNIFIED IDEOGRAPH-XXXX 又は CJK COMPATIBILITY IDEOGRAPH-XXXX と表す。

備考1. XXXX は, JIS X 0221 の16進表記の2オクテット符号化表現とする。ただし, この規格には, JIS X 0221 に含まれていない文字も含まれている。これらの文字の名前及び2オクテット符号 化表現は, [NAME] 及び (XXXX) と括弧でくくって表し, 参考とする。

2. この規格における文字の解釈は, JIS X 0221 のそれと必ずしも同一ではない。この規格は, 図形文字の意味及び用途を定義しないし, 制限もしない。

[1]

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

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

[3]

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

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

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

[92] ISO/IEC 6937:2001 は非spacing文字についてのみ、 ISO/IEC 10646 とは別系統の名前を与えていました。 非spacing文字

[164] ConScript Unicode Character Names, , https://web.archive.org/web/19970605185120/http://www.ccil.org/~cowan/csur/naming.html

[157] ページ) - n2466-Resolutions.pdf, , https://www.unicode.org/irg/sc2/n2466-Resolutions.pdf#page=2

メモ

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

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

[94] mashabowさんはTwitterを使っています 「Unicodeでは制御文字はcharacter nameなしなので、ASCIIの制御文字Bell (0x07) に対応するU+0007は文字名無しだった。で、ベルの絵文字U+1F514にそのままBELLって名前をつけちゃった。→ASCIIの文字名も使っていたPerlさん困惑」 / Twitter (, ) https://twitter.com/mashabow/status/206062205161050112

[95] perl5180delta - what is new for perl v5.18.0 - Perldoc Browser () https://perldoc.perl.org/perl5180delta#%5CN%7BBELL%7D-now-refers-to-U+1F514-instead-of-U+0007

[126] 00000001.PDF - 070.pdf, , https://itscj.ipsj.or.jp/ir/070.pdf

[127] >>126 これは ISO 6937 ベースの文字集合であるにも関わらず、 名前は ISO 6937 方式ではなく RA (ISOREG) 方式に従った、 と書かれています。 ISO-IR は94集合については一応緩やかな基準を持って RA 側で一貫した名前を与えていたようですが、 それは他の ISO 国際標準とすら統一されていなかったのです。 というのが ISO/IEC 10646 以前の状況でした。