Ubuntu下讓terminal編碼自動切換起因:
ubuntu下的bbs登錄工具大部分字體不太好。比如qterm。直接用gnome-terminal登錄bbs似乎效果更好。但是bbs的編碼一般是GBK,而我的locale是UTF-8,所以需要轉換。
每次都在命令行輸入telnet ***@****非常麻煩,而且要手動去菜單欄改編碼。所以我希望能夠有一個可以在命令行下修改gnome-terminal編碼的方法。然後將這個命令和telnet ssh寫入.sh文件,就可以雙擊運行了。
解決方法:
使用luit
sudo apt-get install luit
通過命令行登錄bbs的命令:
luit -encoding gbk ssh username@hostname
但是在ubuntu中luit執行的時候會出現如下錯誤:
Warning: couldn't find charset data for locale *****; using ISO 8859-1.
通過閱讀man luit,發現
FILES
/usr/lib/X11/fonts/encodings/encodings.dir
The system-wide encodings directory.
/usr/lib/X11/locale/locale.alias
The file mapping locales to locale encodings.
而這兩個文件在ubuntu下的位置為:
/usr/share/X11/locale/locale.alias
/usr/share/X11/fonts/encodings/encodings.dir
做個鏈接到上述目錄即可:
ln -s /usr/share/X11/locale/locale.alias /usr/lib/X11/locale/
ln -s /usr/share/X11/fonts/encodings/encoding.dir /usr/lib/X11/fonts/encoding/
如果提示文件不存在,則要現把目標目錄結構建好。
這樣就可以使用
luit -encoding gbk ssh username@hostname
來登錄bbs了。
將這個命令保存入.sh文件,可以雙擊運行。
後記:終於可以自動轉換為GBK了,針對不同的bbs做了幾個.sh文件,放入面板。但是通過修改系統字體,再修改qterm的設置,發現效果還可以。所以,現在也用qterm了。不過luit可以用來登錄其他的不同編碼的主機。