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可以用来登录其他的不同编码的主机。