タグ (Unicode)
読み:タグ
外語:tag
Unicode
で用いられる機能文字の一群で、内容に関連する補足的な情報を記述するための専用の文字。
目次
概要
特徴
由来
RFC 6082の概要
RFC 2482
仕様概要
準拠仕様
用例
実装上の問題点
概要
文字は、
補助特殊用途面
(SSP)にあり、
Unicode 3.1
から追加された。
U+E0000〜E007F
このうち、実際には、次の範囲に計97字のタグ文字がある。
U+E0001
U+E0020〜E007F
特徴
由来
Unicodeにおいて、「言語タグ」と称される、文書の言語情報を文字コードの水準で記述するために作られた。
具体的な仕様は
RFC 2482
で定義されており、この仕様が要求する文字がUnicodeに追加された。
拡張性が確保されており、汎用性が比較的高いように設計はされていたが、結局「言語タグ」以外に使われることはなく、そもそも「言語タグ」としてすら現実に使われることがなかった。最終的に
RFC 2482
は、
RFC 6082
により破棄(Obsoleted)が宣告された。
RFC 6082の概要
RFC 6082
は
RFC 2482
を破棄(Obsolete)し、
RFC 2482
をHistoric状態とすることを宣言した。
RFC 6082
によれば、
RFC 2482
「Unicode
プレーンテクスト
の言語タグ」 は必要に応じて
言語
を識別するために、特殊なUnicode言語タグ文字を使用するための機構を説明している。しかし、その「時」が訪れることの決してないアイディアだった、と述べられている。
そもそも、文書の言語は、MIMEのContent-languageヘッダーやXMLで提供されるようなより一般的なマークアップ機構などによる、全トランザクションの言語識別によるのが一般化し、XMLなどでは必要に応じて要素単位で言語指定が可能だった。これで困ることは無かった。
この状況と、およそ相容れることのない言語タグ文字は、プロトコル仕様を混乱させるばかりで存在自体がむしろ有害。そこでUnicodeコンソーシアムは言語タグを廃止し、それを使用しないことを強く推奨する、とした。
RFC 2482
仕様概要
RFC 2482
は、ASCIIベースの文字列で言語が記述できるような仕様を提案していた。
ASCII
の文字はU+0020〜U+007Eなので、これに0xE0000を加算したU+E0020〜U+E007Eを「タグ文字」として定義した。
また、U+E007Fをキャンセルタグとした。
そして、U+E0001を「言語タグ」という名の文字とし、言語タグはU+E0001に続けてタグ文字を書く、という仕様を提案していた。
準拠仕様
言語を指定するために、
RFC 1766
を採用した。そしてこれはISO 639とISO 3166に準拠していた。
RFC 1766
はプライマリータグとサブタグでそれぞれ1から8文字までの英字を使えるとし、サブタグは任意である。サブタグを使うときには "-" 文字で区切る。
例えば
日本語
なら "ja"、特に日本の日本語なら "ja-JP" となる。
用例
RFC 1766
の場合と同様に、文字列で記述するが、使う文字はASCII互換の文字ではなく、専用のタグ文字である。
"ja"の場合
U+E0001 U+E006A U+E0061
"ja-JP"の場合
U+E0001 U+E006A U+E0061 U+E002D U+E006A U+E0070
実装上の問題点
例えば "ja" が指定されれば、以降漢字文字は日本語の文字として扱えば良いだろうことは自明である。とはいえ、厳密に何かの文字を指し示すことができるわけではない。
勘違いしてはならないのは、これによって統合されたあるUnicode漢字の一文字を、厳密に字形分離できるわけではないからである。
Unicodeの規格書にはCJKなどの例示字体が掲載されているが、あくまで例であり、この字形に厳密に準拠しなければならないという決まりは無い。
日本語の漢字に限ってみても、例えば渡辺さんの「辺」の字の豊富さは有名で、"ja" としたところでこれが区別できるわけではないことは自明である。
字形を厳密に指定する方法としては別途、
異体字セレクター
が作られ運用されているが、そのような意味でも、言語タグというのは使い出の無い機能だった。
再検索