CRT(secureCRT)中文显示研究&Linux中文字符显示
关于secureCRT设置编码:
基本上只需要设置crt字符编码与远程服务器一致就可以了。要注意的是,有时设置完之后要重启secureCRT, 不然不会生效。
Linux字符集设置
说到字符集不得不说Linux的国际化和本地化。
国际化字符集配置文件:
/etc/sysconfig/i18n (i18n 原名:internationalization 前后两个字符中间刚好18个字符)
本地化字符集配置文件:
l10n (l10n 原名:localization 前后两个字符中间刚好10个字符,位置在哪里,我没找到)
国际化的概念,我的理解是一套标准,通过这套标准,进行开发和配置可以很方面的实现各种本地化处理(像字符集)。有了国际化,当需要把某个软件或应用进行本地化处理时,就不需要再进行重构。简单的像:一个纯英文的软件,菜单都是英文的,到中国来,你总不能就这么拿去卖,那有多少人看不懂, 至少要把菜单转化为中文吧。如果菜单的字符都是硬编码到程序里,那完了,你要从源码一个一个重新修改这些字符把所有的exit变成退出,然后重新编译。这有多痛苦,想想就知道,而且只是修改菜单而已。如果是通过配置文件,比如有一个语言配置文件,事情就简单多了。换一个配置文件就可以了。也不用重构这个软件了。
本地化:可以简单的理解,把英文转化成国人看得懂的中文。
知识点:
使用locale查看当前本地化环境变量:
清单 1. 系统当前 locale 环境变量值
$ locale LANG=en_US.UTF-8 # 未设置任何 LC_xxx 变量时所使用的默认值 LC_CTYPE=zh_CN.UTF-8 # 指定使用某区域的字符分类及处理方式 LC_NUMERIC="en_US.UTF-8" # 指定使用某区域的非货币的数字格式 LC_TIME="en_US.UTF-8" # 指定使用某区域的日期和时间格式 LC_COLLATE="en_US.UTF-8" # 指定使用某区域的排序规则 LC_MONETARY="en_US.UTF-8" # 指定使用某区域的货币格式 LC_MESSAGES="en_US.UTF-8" # 指定使用某区域的响应与信息的格式 LC_PAPER="en_US.UTF-8" # 指定使用某区域的纸张大小 LC_NAME="en_US.UTF-8" # 指定使用某区域的姓名书写方式 LC_ADDRESS="en_US.UTF-8" # 指定使用某区域的地址格式和位置信息 LC_TELEPHONE="en_US.UTF-8" # 指定使用某区域的电话号码格式 LC_MEASUREMENT="en_US.UTF-8" # 指定使用某区域的度量衡规则 LC_IDENTIFICATION="en_US.UTF-8" # 对 locale 自身信息的概述
LC_ALL= # 用来覆盖掉所有其他 LC_xxx 变量的值
注意环境变量的使用优先顺序
清单 2. locale 相关变量使用时的优先顺序
[1] LANGUAGE [2] LC_ALL [3] LC_xxx [4] LANG
通常只要在登入shell里面设置LANG为本地化, 一般通过设置用户的 ~/.login_conf 或用户shell的启动文件(~/.profile,~/.bashrc, ~/.cshrc)。
参考资料
http://www.ibm.com/developerworks/cn/linux/l-cn-linuxglb/
http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/l10n.html