IRC 真是有趣的東西。

上禮拜開始學著用 irssi ,這是一個有文字模式介面也有 X GUI 介面的 IRC 客戶端程式,在 Unix-like 系統上面執行,但也有 Cygwin porting。irssi 上中文 channel 有些編碼的問題;locale 是 UTF-8,直接跑 irssi 就會進 UTF-8,Big5 中文 channel 沒辦法用;locale 換成 Big5,也會遇到一樣的問題,只是 UTF-8 Big5 角色互調而已。

以下稍微紀錄一下這幾天學到的小技巧,詳細的資料還是要瞧瞧那部未完成的 irssi 說明手冊。

screen online recoding FAILED

本來想用 screen 內建的 Big5 對 UTF-8 轉碼功能來解決這個問題的,此時的 irssi-text 是 0.8.9。作法請參考

等文件。我的 shell 是 UTF-8,所以進入 UTF-8 中文頻道只需要在 irssi 設 /SET term_type UTF-8 即可;但要進入 Big5 中文頻道除了要在 irssi 裡 /SET term_type Big5 之外,screen 裡也要 ctrl+a : encoding Big5 UTF-8

一開始運作得很順利 -- 直到我在 Big5 中文 channel 裡輸入中文之前。這些 Big5 的中文頻道用看的時候都健健康康地,想說話卻破了功。

試了半天,我覺得這條路行不通。

原來要換新版的 irssi

感謝 #debian.tw 眾位優秀人士的幫助,我才知道 testing 裡的 irssi-text 現在是舊得可以。新版 (nightly build) 的 irssi 把 recode module 加了進來,可以在程式裡直接作 iconv。

這邊 是 qvr's unstable packages 包好的 irssi-text 套件, sources.list 加上:

deb http://irssi.qvr.info/debian/ sarge/

這一行,再 apt-get update; apt-get install irssi-text ,就會昇級到 0.8.10-rc5 (現在包的版本),裡面多了 /RECODE 這個指令,可以用來指定 channel 的編碼。

舉我的例子來講,下:

/RECODE ADD #debian-zh UTF-8
/RECODE ADD #debian.tw Big5
/RECODE

前兩行會把 #debian-zh#debian.tw 這兩個頻道所需的編碼資訊寫進設定檔裡面,後一行會列出程式現行的 RECODE 表:

22:48 Target                         Character set
22:48 #debian-zh                     UTF-8
22:48 #debian.tw                     Big5

而原本的 /SET term_type UTF-8 在新版裡也改成 /SET term_charset UTF-8 。另外為了讓 irssi 知道要作 /RECODE ,再設:

/SET recode_transliterate ON

還要指定預設的編碼是 UTF-8 (因為我的 shell 是 UTF-8):

/SET recode_fallback UTF-8
/SET recode_out_default_charset UTF-8

這樣,使用 UTF-8 的 #debian-zh 和 Big5 的 #debian.tw 時,irssi 就會自動把編碼通通轉成 UTF-8,放在你的 UTF-8 terminal 裡顯示,而你輸入的 UTF-8 字串也會正確地重新編碼後,送回 IRC 伺服器。

irssi 自動加入頻道

為了一執行 irssi 就可以加入 (/JOIN) 平常會用的頻道,要在 irssi 裡下這樣的指令:

/CHANNEL ADD -auto #debian-zh freenode
/CHANNEL ADD -auto #debian.tw seednet

因為 irssi 預設是沒有 seednet 這個 IRCNET 的,所以我們要手動加上去:

/NETWORK ADD -kicks 4 -msgs 1 -modes 4 -whois 1 seednet

再為這個 IRCNET 指定伺服器:

/SERVER ADD -auto -network seednet irc.seed.net.tw

因為 #debian-zh 在 freenode 上,也順便改它一下:

/SERVER ADD -auto irc.freenode.net

最後用 /SERVER LIST 看一下伺服器列表:

23:02 Server               Port  Network    Settings
23:02 irc.stealth.net      6668  IRCnet
23:02 irc.efnet.net        6667  EFNet
23:02 irc.undernet.org     6667  Undernet
23:02 irc.dal.net          6667  DALnet
23:02 irc.freenode.net     6667  freenode   autoconnect
23:02 irc.gnome.org        6667  GIMPNet
23:02 irc.ptlink.net       6667  PTlink
23:02 irc.sorcery.net      6667  SorceryNet
23:02 irc.hashmark.net     6667  Hashmark
23:02 irc.ptnet.org        6667  PTnet
23:02 irc.azzurra.org      6667  AzzurraNET
23:02 irc.seed.net.tw      6667  seednet    autoconnect

這樣一開啟 irssi,它就會主動對 irc.freenode.net 和 irc.seed.net.tw 連線,然後 /JOIN #debian-zh#debian.tw 。這部分的設定和選項我還沒有全搞懂,應該包含了一些冗餘的設定,不過自動連線確實可以運作。

logging

我覺得 logging 真是 IRC 了不起的功能。把聊天的內容紀錄下來,就不怕上班回來錯過了什麼重要的訊息。

以剛剛的兩個頻道為例,可以這樣作紀錄:

/LOG OPEN -targets #debian-zh ~/irclogs/%Y/debian-zh-%m%d.log
/LOG OPEN -targets #debian.tw ~/irclogs/%Y/debian.tw-%m%d.log

這兩行指令可以寫在 ~/.irssi/startup 裡,讓 irssi 一啟動就執行。irssi 另外還有 autolog 的功能,不過我試的時候,它產生的紀錄檔檔名總是怪怪的。於是我回頭用手動指定的紀錄方式。以上的指令,會把兩個頻道的內容以年份作目錄,每日分檔存放在個別的檔案裡面。詳細的檔名指定格式,請參考手冊。

使用 0.8.10-rc5 的 /RECODE 在作紀錄的時候還有個很大的好處。因為我們為輸入 irssi 的訊息指定了編碼,所以 irssi 重新會把它轉換成我們想要的編碼 (我指定為 UTF-8)。如此一來,紀錄檔的內容也會統一成我們想要的編碼,將來在檢閱紀錄檔的時候,比較不會弄錯檔案的編碼 -- 反正都一樣了。

Posted by yungyuc at 23:14, 1 comments, 1 trackbacks.
Navigate
Add a trackback
Comments
Re: irssi UTF-8 Big5 中文轉換與設定
我要測試mail server ,所以下載Fedora Core 3,並安裝OK.我使用Fedora Core 3終端機模示連線到Sco5.5 Unix的機器,Run 套裝的進銷存系統時,雖然有顯示中文,可是要去哪裡修改按鍵的值呢!目前Delete,Home,End,PageUp,PageDown...無法正常我要刪除一個字,按delet鍵,系統就會跳離該作業,我該如何設定Insert= 我要測試mail server ,所以下載Fedora Core 3,並安裝OK.我使用Fedora Core 3終端機模示連線到Sco5.5 Unix的機器,Run 套裝的進銷存系統時,雖然有顯示中文,可是要去哪裡修改按鍵的值呢!目前Delete,Home,End,PageUp,PageDown...無法正常我要刪除一個字,按delet鍵,系統就會跳離該作業,我該如何設定Insert=
lily at 2005-03-25 14:30.
Trackbacks
掛站系統設定篇
上一篇掛站系統所講的相關設定我貼在這篇文章裡面,用途當然是掛站(BBS和irc),目前我的設定還沒辦法開機自動啟動,正在研究問題在哪,另外對expect不熟,還沒厲害到可以被踢下站自動重登入。需求: Linux主機一台。 irssi,irc客戶端程式,推薦剛出的0.8.10版。 SCREEN,達成掛站目標的主要程式之一,需要手動作patch並編譯。 Expect,達成掛站目標的主要程式之二。...<br />-----
O3noBLOG at 2005-12-16 15:35.
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "TrCkm"
© hover year to navigate month: powered by django