[10] Unicode および近年の公的文字コード規格は、文字にラテン文字その他による名前を割り当てています。 文字の名前は、文字を一意に特定するもので、複数の符号化文字集合に属する文字同士の等価性は、 文字の名前が一致するか否かに拠るとされています。
[59] 例えば「A
」の名前は LATIN CAPITAL LETTER A
です。
[11] 文字の名前について横断的に定義した仕様は存在しませんが、事実上唯一現存する符号化文字集合である Unicode における名前の定義 (>>9) が最も規範的なものと考えられますし、 最も詳細に説明もされています。次節に示すように、 各種符号化文字集合規格にもそれぞれの定義が含まれています。
[30] Unicode において文字の名前とは、文字の
Name
特性 (略称 na
) の値のこと
>>9 をいい、次のように定義されています。
Jamo.txt
に書かれています >>77。
版による違いがあります。
CJK UNIFIED IDEOGRAPH-
または
CJK COMPATIBILITY IDEOGRAPH-
の後に16進数4桁または6桁の符号位置を続けた名前です。UnicodeData.txt
に書かれている名前です
>>77。[35] 名前が空文字列であることを「名前がない」ともいいます >>9。
[51] 名前は、その文字の一般的な用法や形状を表しています。 しかし、名前はその文字の用法やグリフを制限することを意図したものではないと解されています。
[52] また、名前はあくまで符号化文字集合における文字の識別を目的としたもので、 その文脈を離れて一般的な文字の正式な名称を定めるものではないというのが通常の理解です。
[20] Unicode の文字の名前は次の正規表現による擬似コードの条件すべてに一致する文字列とされています >>9。
[21] U+0020
や -
が連続しているケースや、
-
の有無によって別の文字を表すケースもあります。
[23] TIBETAN LETTER A
と TIBETAN LETTER -A
は別の文字です。
[46] 長さの上下限はないようです。現時点で最短の名前は2文字です。略号を除けば4文字が最短かもしれません。
[15] Unicode の文字の名前、文字名別名 (>>25)、 名前付き文字列の名前 (>>26) は変更されることはなく、 また互いに異なる値である >>9 とされています。
[24] ただし過去には何度か変更されています。
[25] 文字の名前が割り当てられた後に誤りが発覚した場合、 文字名別名が割り当てられます。 文字名別名は文字の名前と同じ名前空間を共有していています。 >>9
[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] 公的な標準化団体の仕様以外で独自の文字の名前を定めている例もいくつかあります。
[64] Unicode に統一されつつあった時代の文字コード関連仕様は、 Unicode の符号位置や名前との関係を記述していますが、 たまに怪しいケースがありました。 (Unicode にない (または当時はなかった) 文字に独自の名前を割り当てている場合もありましたが、 それは除きます。)
[69]
JIS X 0213:2000
は
Unicode
にない文字に独自の名前を与えていました。
JIS X 0213:2004
で
Unicode の名前に改正されました。
[70] JIS X 4051:2004 は JIS X 0213:2000 の名前を使っていました。
[112] ARIB STD-B62 は JIS X 0213:2004 の代替名称を使っています。
[114] 文字の名前は変更しないことになっているので、 後に誤りとわかってもそのままになっていることがあります。
[113]
合成用ハングル字母のうち4つは文字の名前が誤りとわかり、
ISO/IEC 10646:2003 Amd.5
で文字の名前の後に括弧書きの注釈を加える形で訂正されました。
[26] 文字の連続に対しても名前が割り当てられることがあり、 名前付き文字列と呼ばれています。 名前付き文字列も文字の名前と名前空間を共有しています。 >>9
[136]
Unicode / ISO/IEC 10646 の他には JIS X 0213 がいくつか規定しています。
JIS X 0213 のほとんどの名前付き文字列は Unicode のものと等しいですが、
2つは違う名前です。
[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 のように下付き文字が使われていました。
[131] null, , https://www.unicode.org/L2/L2011/11281-control-aliases.txt
[36] 名前のない符号位置に関しても便宜上符号位置ラベルが用意されています。
符号位置ラベルは小文字、ハイフン、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種類が存在しています。
[13] Unicode は英語の名前を採用しており、ISO/IEC 10646 の英語の名前と一致するとされています >>9。
[100]
近年 Unicode は仏語版の符号表も公開しています。
そちらでは仏語の文字の名前が使われています。
>>98
仏語の文字の名前は規定の一部ではないとされています。
>>97
仏語の文字の名前は公式な
UCD
に含まれていませんが、
符号表の元になったと思しきデータファイルが非公式に公開されています
>>101, >>99。
[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
のハングルに英語の文字の名前と韓国語の名前を併記しています。
[159]
I.S. 434 の符号化文字集合は左側が ASCII、右側が独自ですが、
規格票は英語とアイルランド語の対訳形式で、
すべての図形文字と SPACE
と DELETE
の文字の名前がそれぞれの言語で示されています。
SPACE
と DELETE
には略号もあり、 DELETE
はアイルランド語では略しても
DEL
にはなりませんが、どちらも SP
, DEL
となっています。
[54] その他各国の規格では、規定または参考として自国の公用語の名前を挙げていることがあります。
[56] 実用上は Unicode が用いる英語の名前だけ考慮すれば十分です。 例えば正規表現で文字の名前を与える場合、 Unicode の名前が使われています。
[44] 文字の名前の一覧は Unicode Character Database の NamesList.txt
に含まれています。
[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 の他のファイルには入っていないらしいのです。
(おそらくこのファイル生成用の元データファイルは非公開なのでしょう。)
[93]
Unicode符号点や符号化済文字の記述 (参照) に使われます。
[71] 仕様書の参照以外にもプロトコル要素として使われることがあります。
[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
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.
- 4.3 名前
- この規格では、規定するすべての文字に対して名前を割り当てる。 さらに、文字
SPACE
(スペース
) 及び文字DELETE
(抹消
) に対する略号を規定する。 文字の名前の表記には、ラテン大文字 (A
〜Z
)、スペース及びハイフンだけを使用する。 略号には、ラテン大文字だけを使用する。図形文字を示すために付けられた名前は、 文字の慣習的な意味を反映するようにしている。しかし、 この規格は、図形文字の意味を定義しないし、制限もしない。
参考 JIS X 0211 (符号化文字集合制御機能) で規定する制御機能の略号には、 ラテン大文字及び数字だけを使用している。 JIS X 0201: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-
は省略して示した。
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 のそれと必ずしも同一ではない。この規格は, 図形文字の意味及び用途を定義しないし, 制限もしない。
a) 及び b) の場合に、文字の名前を構成するために用いる指針を附属書 K (参考) に示す。 (JIS X 0221‐1:2001 6.4)
この規格群で規定する図形文字は、その名前で一意に識別する。名前が異なっていても、図形文字を可視化した図形記号が常に異なるわけではない。類似の図形記号をもつ図形文字の霊としては、
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
とは別系統の名前を与えていました。
[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 以前の状況でした。
LEFT
やRIGHT
が名前に含まれていて、名前と表示が真逆になる文字すらあります。