ambiguous width のリソース等

ambiguous widthについては、http://www.unicode.orgにある、 East Asian Width Technical Report #11 (http://www.unicode.org/reports/tr11-5/) に説明がある。

Unicode文字には6つの種類がある。 Ambiguous, Full Width, Half Width, Narrow, Wide, Not East Asian Neutral

テーブルの定義は http://www.unicode.org/Public/6.0.0/ucd/EastAsianWidth.txt

ここでAがambiguous,FがFull Width,HがHalf Width,NaがNallow,WがWide,NがNot。

また、http://www.m17n.org/mlarchive/mule-ja/200905/msg00009.html からの スレッドでも問題になっていて、LC_CTYPEで変更するのは危険と。 ncursesが端末と通信して幅を決められればベターというアイデアが出ている。

ただし、00A2のように、Nでも実際の表示が2バイト幅のものもある。

これも便利 http://www.utf8-chartable.de/

unisetは http://www.cl.cam.ac.uk/~mgk25/unicode.html

slang のパッチ

http://mailman.jedsoft.org/pipermail/slang-users-l/2008/000630.html にs-langへの パッチがある。ただメインストリームには含まれていない。

にある。

実際の表示

どうなるかについては、 http://gihyo.jp/admin/serial/01/charcode/0007 に記述がある。

画面例

FreeBSD9.3側でxterm/mltermを起動し、openSUSE 42.2 側で表示をした場合の例

番号muttrcのcjk_widthLC_CTYPEterminal文字化け
ONOFFUTF-8オリジナルUTF-8改造xtermmlterm
1Xフォントが1バイト系
2ないがフォントが1バイト系
3なし
4ないがフォントが1バイト系
5Xフォントが1バイト系
6Xフォントが1バイト系
7文字化けする
8Xフォントが1バイト系

番号1に対する画像 pettern-A.png

番号2,4に対する画像 pettern-B.png

番号3に対する画像 pettern-C.png

番号5に対する画像 pettern-D.png

番号6,8に対する画像 pettern-E.png

番号7に対する画像 pettern-F.png