東アジアの文字幅

「東アジアの文字幅」（）は、Unicode標準の附属書 () の一つ。Unicodeに収録されている各文字の文字幅に関するヒントを与える East_Asian_Width 参考特性（）を定めている。
概要.
東アジアのマルチバイト文字コード規格は必ずしも文字幅を規定していないが、1バイト文字に1桁の幅（いわゆる半角）の文字を、2バイト文字に2桁の幅（いわゆる全角）の文字を割り当てることが慣習的に行われてきた。計算機資源が飛躍的に豊かになり、プロポーショナルフォントのサポートが定着した現在においても、おもに端末エミュレータやテキストエディタ、電子メールクライアントなどのアプリケーションにおいて、この従来の慣習に従った文字幅の情報が必要とされることがある。日本語EUCでは文字型端末における1バイト文字と2バイト文字の文字幅は単なる慣習にとどまらず、明示的に規定されている。
Unicodeではこれらの従来文字コードからの移行時に互換性を保つため、附属書11 (UAX#11) でEast_Asian_Width特性を定め、従来文字コードで使われていた慣習的な文字幅に合わせて各文字に特性を割り当てた。
East_Asian_Width特性の値は、次の6種類からなる（図1も参照）。
UAX#11では、これらの特性を次のように解釈することを推奨している。
従来文字コードとの互換性を目的としているため、Unicode全体から見たとき、特性値NやAの付与は一貫していない部分がある。東アジアのどの文字集合規格にも含まれたことのない用字 (コプト文字、デーヴァナーガリーなど) は、すべて特性値N（中立）である。いっぽう、ひとつの用字系の中でも、収録されたかどうかで個々の文字の特性値が異なっている。たとえばラテン文字では、アクセントなしのものは特性値Na（狭）となるが、アクセントつきのものは小文字の一部（á、ě 等）がGB2312などに収録されているため特性値A（曖昧）となり、大文字のほとんど (Á, Ě など) は東アジアの文字集合規格に収録されていないため特性値N（中立）となる。アクセントなしでも、大文字小文字ともKS X 1001などに収録される合字や古字 (Æ/æ, Ð/ð) はともに特性値A（曖昧）である。ギリシア文字では、気息記号のない文字のほとんどは各文字集合規格に収録されているため特性値A（曖昧）だが、気息記号のある文字、古字、語末のシグマ (ς) のような異体は収録されないため特性値N（中立）である。
問題点.
日本語EUC環境からUTF-8環境へ移行した場合、East_Asian_Width特性がAmbiguous（曖昧）の文字は、文字型端末においていわゆる全角として扱われる必要がある。欧米の実装は必ずしもこの問題を考慮していないため、文字型端末において表示やカーソル制御が乱れる原因となることがあり、端末エミュレータ等では日本語独自の場当たり的なパッチを当てるなどしてしのいでいるのが実情である。