この辺にもちょっと関連するものがあるけど、UNICODE の「文字」ってのは「幅」が文脈依存というかフォント依存というかとにかく不定なのです。実用的には、CJK な環境では記号類やギリシャ文字、キリル文字等一部の文字が全角幅(Fullwidth)で取り扱われ、そうでない環境では半角幅(Halfwidth)で取り扱われる。(理想論でいうと、1.5em とかで表示される文字があっても文字は文字なので問題はないと思う。UNICODE 的には) にもかかわらず、半角幅で取り扱って悲しい目にあうソフトが多い。私がよく困るシチュエーションでは、記号類「☆」や「…」が半角として取り扱われて、端末エミュレータ上の vi で違う文字を編集してしまうとか、PHP の mb_strwidth が「曖昧」な文字の時 1 を返してしまうとか。 「UNICODE の文字の幅は一意に定まる」(この話とは関係ないけど)「