2011年6月11日土曜日

ユニコードの文字幅問題(2)

ユニコード文字を端末エミュレータで表示する時にどのような文字幅で表示するべきか?

これに対してユニコードとして出された回答がUnicode Standard Annex #11 East Asian Widthという規定になります。

これはあくまで東アジアの過去の(legacy)文字符号と相互運用するための規定なので全ての文字に対して有用であるわけではありませんが、おおざっぱに言えばユニコードの文字全てに対して以下の方針で Wide(全角)か Narrow(半角)かを指定したものになります。

・漢字、ひらがな、カタカナなどの東アジアの文字は Wide (普通はASCIIの二倍の幅を持つ)。
・通常の文字と互換文字としての「全角変種(Fullwidth)」の両方が存在している場合には、通常の文字を Narrow で互換文字を全角。
・通常の文字と互換文字としての「半角変種(Halfwidth)」の両方が存在している場合には、通常の文字を Wide もしくは Ambiguous、互換文字を半角。
・過去の文字コードとの互換性から東アジアの文字符号に含まれている場合にはAmbigous
・原則とてそれ以外の文字は全てNeutral

Neutral というのは必ずしも Narrow という意味ではありませんが、習慣的に全て Narrow として実装されます。Ambiguous というのは東アジア(CJK)の文字と一緒に使用する場合には Wide で、それ以外で使用する場合は Narrow にするとい意味になります。

過去との互換性のためのかなり現実的な規定です。これによって、現実的なユニコードの端末エミュレータによる日本語表記が可能になりました。

さあ、これで全て解決でしょうか?

0 件のコメント:

コメントを投稿