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

  做个链接到上述目录即可:
  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可以用来登录其他的不同编码的主机。

相关内容