タグ (Unicode)
読み:タグ
外語:tag

 Unicodeで用いられる機能文字の一群で、内容に関連する補足的な情報を記述するための専用の文字。
目次

概要
 文字は、補助特殊用途面(SSP)にあり、Unicode 3.1から追加された。
 このうち、実際には、次の範囲に計97字のタグ文字がある。

特徴

由来
 Unicodeにおいて、「言語タグ」と称される、文書の言語情報を文字コードの水準で記述するために作られた。
 具体的な仕様はRFC 2482で定義されており、この仕様が要求する文字がUnicodeに追加された。
 拡張性が確保されており、汎用性が比較的高いように設計はされていたが、結局「言語タグ」以外に使われることはなく、そもそも「言語タグ」としてすら現実に使われることがなかった。最終的にRFC 2482は、RFC 6082により破棄(Obsoleted)が宣告された。

RFC 6082の概要
 RFC 6082RFC 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" としたところでこれが区別できるわけではないことは自明である。
 字形を厳密に指定する方法としては別途、異体字セレクターが作られ運用されているが、そのような意味でも、言語タグというのは使い出の無い機能だった。

再検索