この記事には
複数の問題があります 。
改善 や
ノートページ での議論にご協力ください。
「東アジアの文字幅 」(英 : East Asian Width )は、Unicode 標準の附属書 (英 : Unicode Standard Annex ) の一つ。Unicodeに収録されている各文字の文字幅に関するヒントを与える East_Asian_Width 参考特性(英 : informative property )を定めている。
概要
東アジアのマルチバイト 文字コード 規格は必ずしも文字幅を規定していないが、1バイト文字に1桁の幅(いわゆる半角 )の文字を、2バイト文字に2桁の幅(いわゆる全角)の文字を割り当てることが慣習的に行われてきた。計算機資源が飛躍的に豊かになり、プロポーショナルフォント のサポートが定着した現在においても、おもに端末エミュレータ やテキストエディタ 、電子メールクライアント などのアプリケーション において、この従来の慣習に従った文字幅の情報が必要とされることがある。日本語EUC では文字型端末における1バイト文字と2バイト文字の文字幅は単なる慣習にとどまらず、明示的に規定されている[1] 。
図1 East_Asian_Width特性と文字の関係。
Unicodeではこれらの従来文字コードからの移行時に互換性を保つため、附属書11 (UAX#11) でEast_Asian_Width特性を定め、従来文字コードで使われていた慣習的な文字幅に合わせて各文字に特性を割り当てた。
East_Asian_Width特性の値は、次の6種類からなる(図1も参照)。
F (Fullwidth; 全角)- 互換分解特性 <wide> を持つ互換文字 。文字の名前に "FULLWIDTH" を含む。いわゆる全角英数など。
H (Halfwidth; 半角)- 互換分解特性 <narrow> を持つ互換文字。文字の名前に "HALFWIDTH" を含む。いわゆる半角カナ など。
W (Wide; 広)- 上記以外の文字で、従来文字コードではいわゆる全角であったもの。漢字 や仮名文字 、東アジアの組版にしか使われない記述記号(たとえば句読点 )など。
Na (Narrow; 狭)- 上記以外の文字で、従来文字コードでは対応するいわゆる全角の文字が存在したもの。いわゆる半角英数など。
A (Ambiguous; 曖昧)- 文脈によって文字幅が異なる文字。東アジアの組版 とそれ以外の組版の両方に出現し、東アジアの従来文字コードではいわゆる全角として扱われることがある。ギリシア文字 やキリル文字 など。
N (Neutral; 中立)- 上記のいずれにも属さない文字。東アジアの組版には通常出現せず、全角でも半角でもない。アラビア文字 など。
UAX#11では、これらの特性を次のように解釈することを推奨している。
Unicode のテキストを東アジアの従来文字コードの文脈で扱う場合(図2も参照)
特性値Na (狭)またはN (中立)を持つ文字は、半角の文字 (halfwidth) として扱う。
特性値W (広)またはF (全角)を持つ文字は、全角の文字 (fullwidth) として扱う。
特性値H (半角)を持つ文字は、半角の文字 (halfwidth) として扱う。
特性値A (曖昧)を持つ文字は、全角の文字 (fullwidth) として扱う。
Unicode のテキストを東アジア以外の従来文字コードの文脈で扱う場合(図3も参照)
特性値Na (狭)またはN (中立)を持つ文字は、幅の狭い文字 (narrow) として扱う。
特性値W (広)またはF (全角)を持つ文字は、東アジア以外の従来文字コードの文脈には現れない。
特性値H (半角)を持つ文字は、東アジア以外の従来文字コードの文脈には現れない。
特性値 A (曖昧)を持つ文字は、幅の狭い文字 (narrow) として扱う。
図2 東アジアの従来文字コードの文脈の場合。網かけした2つの領域の文字が、それぞれ全角と半角として扱われる。
図3 東アジア以外の従来文字コードの文脈の場合。網かけした領域の文字が、幅の狭い文字として扱われる。そのほかの領域の文字は現れない。
従来文字コードとの互換性を目的としているため、Unicode全体から見たとき、特性値N やA の付与は一貫していない部分がある。東アジアのどの文字集合規格にも含まれたことのない用字 (コプト文字 、デーヴァナーガリー など) は、すべて特性値N (中立)である。いっぽう、ひとつの用字系 の中でも、収録されたかどうかで個々の文字の特性値が異なっている。たとえばラテン文字 では、アクセント なしのものは特性値Na (狭)となるが、アクセントつきのものは小文字 の一部(á、ě 等)がGB2312 などに収録されているため特性値A (曖昧)となり、大文字 のほとんど (Á, Ě など) は東アジアの文字集合規格に収録されていないため特性値N (中立)となる。アクセントなしでも、大文字小文字ともKS X 1001 などに収録される合字や古字 (Æ/æ, Ð/ð) はともに特性値A (曖昧)である。ギリシア文字 では、気息記号 のない文字のほとんどは各文字集合規格に収録されているため特性値A (曖昧)だが、気息記号のある文字、古字、語末のシグマ (ς) のような異体は収録されないため特性値N (中立)である[2] [3] 。
問題点
日本語EUC環境からUTF-8 環境へ移行した場合、East_Asian_Width特性がAmbiguous(曖昧)の文字は、文字型端末 においていわゆる全角として扱われる必要がある。欧米の実装は必ずしもこの問題を考慮していないため、文字型端末において表示やカーソル 制御が乱れる原因となることがあり、端末エミュレータ等では日本語独自の場当たり的なパッチ を当てるなどしてしのいでいるのが実情である[4] 。
脚注
関連項目
外部リンク