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

做个链接到上述目录即可:
sudo mkdir /usr/lib/X11/locale
sudo ln -s /usr/share/X11/locale/locale.alias /usr/lib/X11/locale/
sudo mkdir -p /usr/lib/X11/fonts/encoding/
sudo 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能够用来登录其他的不同编码的主机。