例如zh_CN.GB2312、zh_CN.GB18030或者zh_CN.UTF-8。很多人都不明白这些古里古怪的表达方式这个外星表达式规定了什麼东西呢?这个问题稍后详述现在只需要知道,这是locale的表达方式就可以了
locale这个单词中文翻译成地区或者地域,其实这个单词包含的意義要宽泛很多Locale是根据计算机用户所使用的语言,所在国家或者地区以及当地的文化传统所定义的一个软件运行时的语言环境。 locale把按照所涉及到的文化传统的各个方面分成12个大类这12个大类分别是:
上面我们说到了zh_CN.GB18030嘚前半部分后半部分是什么呢?大部分Linux用户都知道是系统采用的字符集 1、我说中文,身处中华人民共和国使用国标2312字符集来表达字苻。zh_CN.GB2312=中文_中华人民共和国+国标2312字符集 2、我说中文,身处中华人民共和国使用国标18030字符集来表达字符。zh_CN.GB18030=中文_中华人民共和国+国標18030字符集 3、我说中文,身处中华人民共和国台湾省使用国标Big5字符集来表达字符。zh_TW.BIG5=中文_台湾.大五码字符集 5、我说德语身处德国,使用UTF-8芓符集习惯了欧洲风格。 -8字符集@按照欧洲习惯加以修正注意不是-8,所以完全的locale表达方式是 [语言[_地域][.字符集] [@修正值] 其中,与中文输入關系最密切的就是LC_CTYPELC_CTYPE规定了系统内有效的字符以及这些字符的分类,诸如什么是大写字母小写字母,大小写转换标点符号、可打印字苻和其他的字符属性等方面。而locale定 义zh_CN中最最重要的一项就是定义了汉字(Class“hanzi”)这一个大类当然也是用Unicode描述的,这就让中文字符在Linux系统中成為合法的有效字符而且不论它们是用什么字符集编码的。 怎样设定locale呢设定locale就是设定12大类的locale分类属性,即12个LC_*除了这12个变量可以设定以外,为了简便起见还有两个变量:LC_ALL和LANG。它们之间有一个优先级的关系:LC_ALL > LC_* >LANG可以这么说,LC_ALL是最上级设定或者强制设定而LANG是默认设定值。 所以locale是这样设定的: 1、如果你需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX或者LANG=zh_CN.XXXX都可以,当然你可以两个都设定但正如上面所讲,LC_ALL的值将覆盖所有其他的locale设定不要作无用功。 4、假如你什么也不做的话也就是LC_ALL,LANG和LC_*均不指定特定值的话系统将采用POSIX作为lcoale,也就是C locale LANGUAGE是设置应用程序的界面语言。而LANG是优先级很低的一个变量它指定所有与locale有关的变量的默认值, |
发布了53 篇原创文章 · 获赞 4 · 访问量 40万+