複雜的 UTF-8 世界

昨天一整天在弄 5.x 上面配合 的 UTF-8 環境,包括了 以及一些台灣常用的套件。(主要是 BBS 的問題)

的問題在 那邊有看到解法:解決用putty看全形字會變一半的問題了!!,其中比較值得慶幸的是新版 已經將 patch import 進去了,不需要在依照原文所寫的方式自己硬幹。不過 還是要自己硬幹,包括改 code 與抓 yjchou 學長所提供的檔案,不過這邊在不斷的 dirty hack 後的代價相當值得,至少上 BBS 完全沒有感覺了。

再來是 的部分,透過 ports 安裝的版本必須自己去抓 recode.pl 丟進 autorun 的 script directory,不過目前看起來也都還相當正常。

的部分畢竟本來就相當注重 UTF-8 的環境,只要把 termencoding 設成 utf-8 (或 utf8,在 裡都可以用) 就運作的相當正常。

真正的問題在於 對 UTF-8 計算字寬的問題。

像是 的畫面就可以發現 Unicode 邊框的問題處理的不太好:

CenterICQ on UTF-8 environment

另外 的畫面也是一樣:

mutt on UTF-8 environment

實際算了一下發現都是直接把 UTF-8 word 的長度當作顯示在螢幕上的寬度,於是就…

果然 UTF-8 的世界很複雜啊… :(

9 thoughts on “複雜的 UTF-8 世界”

  1. hi DK , 我也剛好被 utf-8 搞的頭昏啊 :~
    想請問你很單純的問題 , 設定好語系之後
    如何直接使用 more or less 直接看 utf-8 的檔案咧
    最基本的都搞不定很心酸啊 XD

    export LANG=zh_TW.UTF-8
    export LC_CTYPE=zh_TW.UTF-8
    export MM_CHARSET=zh_TW.UTF-8
    我的設定 =.=
    以前可以用 env LC_CTYPE=en_US.ISO_8859-1 more 檔案 看big5 .. 但是有點dirty感 =_=

  2. mhsin.orgcsie.ntu.edu.twcsie.ntu.edu.twscreen cjkwidth 的 patch,screen/libiconv 換表在這邊。另外,mutt 比較討厭… 印象中小光光是說如果在 ncurses 裡面打開 wchar support 的話,ncurses 會用 wcwidth 去看字寬,然後再加上小光光的 LC_CTYPE 的 patch,mutt 應該會比較正常點,另外是可以叫他用 ascii 畫 thread 的線。irssi 的話,0.8.10-rc 已經有內建 recode 而且比 recode.pl 好(這個還要改一兩下),東西在這邊(distfiles 請自己在那個目錄翻,然後請感謝小光光)。

    其實討厭的原因都在於字寬啊 …

Comments are closed.