Feed on
Posts
Comments

本文授權CC Attribution-ShareAlike 2.5

前陣子搞過FreeBSD UTF-8的term、editor(vim)、screen與irssi。弄的時候一知半解的,所以也沒很認真的做筆記(人老了…)。最近碰到台灣唯一的irc server掛點,部分channel都移至irc.freenode.net上(喔耶,有IPv6!!),也趁機將channel從Big5轉為UTF-8。
FreeBSD UTF-8有不少方法,如果主機root不是你的,修正screen與libiconv算是比較麻煩的。以下說明的只要使用者端做略為修改環境變數即可完成。

Putty設定

在Window/Translation中的Received data….. character set選UTF-8。
下方的treat CJK ambiguous characters as wide要選。

screen
編譯screen時候請WITH_CJK (mhsin’s cjkwidth)下去。這個是修正像bbs字寬會跑掉的問題。
下載18這個編碼,放到/usr/local/share/screen/utf8encodings/裡面。(ref:http://www.csie.ntu.edu.tw/~r92030/project/big5)
.screenrc加入下面這幾行

defc1 off
defencoding utf8
bind b encoding big5 utf8 #^A+b會big5轉utf-8
bind u encoding utf8 utf8 #^A+u會變成utf-8
cjkwidth on#[註1]

.cshrc,加入下面三行,其它跟LC_*或是LANG有關的通通拿掉

setenv LANG en_US.UTF-8
setenv LC_CTYPE en_US.UTF-8
alias telnet ‘env LANG=zh_TW.Big5 zh-telnet \!*’

如果要用telnet上BBS,先按^A+b後再telnet,screen會幫你Big5做轉換。

convmv。檔名/目錄Big5轉UTF-8
請安裝converters/convmv,-r是遞迴,–notest下去就是直接幫你改掉了,請先測試並小心使用。

ychsiao@FreeBSD [~/tmp] [22:41/W2] convmv -f big5 -t utf-8 -r –notest *
mv “CCNP/CCNP642-831�Ч�.pdf” “CCNP/CCNP642-831教材.pdf”

irssi
使用irssi的版本為0.8.12,編譯時打開WITH_PERL,會順便把recode編進去。
若加入的是UTF-8 channel(如#bsdchat),把.irssi/config裡有關big5/utf-8的設定通通拿掉。
若要加入的是Big5 channel,則需要做recode。在irssi中執行下列指令,並/save存檔。

/recode ADD #XXX Big5
/recode
/set recode_transliterate ON
/set recode_fallback UTF-8
/set recode_out_default_charset UTF-8
/set term_charset utf-8 #某K長輩被這行搞死XDDD

FTP Client部分
Filezilla2為例,在該站的進階設定將use utf8 on server if available選force即可。選Auto也是可以,不過在還沒整台機器全面轉UTF-8全還是先不要好了。

vim

set fileencodings=utf-8,big5,euc-jp,gbk,euc-kr,utf-bom,iso8859-1
set encoding=utf-8

iconv,檔案編碼轉換

iconv -f big5 -t utf-8 big5.txt > utf8.txt

mutt
根據rafanutf8note,只要安裝chinese/mutt即可,因為我的平台已經是FreeBSD 7.26.3(Or 6-STABLE 2008?)。不過mutt讀big5信件的標題內文正常都有問題
所以依rafan文件上補安裝devel/ncursesw後再重新編譯mutt後,畫面即正常。mutt設定補上:

set assumed_charset=”big5:gb2312:utf-8″
set ascii_chars=yes
set send_charset=”utf-8:big5:gb2312:us-ascii:iso-8859-1:x-unknown”

致謝:我的FreeBSD UTF-8部分資訊來自#bsdchatllwang, chinsan, mhsin, priv

*update: convmv只能對檔案名稱做轉換。
*update: 修正Big5-2003連結(thanks zmx)
*update: Knight長輩提醒,irssi少了一行設定。

註1:mhsin的說明,17:40 < @mhsin> ychsiao_utf8: 其實你啟動 screen session 那隻如果 local 是 zh_*, ja_*, kr_* 的話會自動開cjkwidth on

Leave a Reply