当前位置:操作系统 > Unix/Linux >>

ubuntu下如何让terminal编码自动切换

  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可以用来登录其他的不同编码的主机。
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,