设定locale   让Linux能够输入中文
locale    软件运行时的语言环境

locale分类:
语言符号及其分类(LC_CTYPE),数字 (LC_NUMERIC),比较和排序习惯(LC_COLLATE),时间显示格式(LC_TIME),货币单位(LC_MONETARY),信息主要是 提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES),姓名书写方式(LC_NAME),地址书写方式(LC_ADDRESS),电话号码书写方式 (LC_TELEPHONE),度量衡表达方式(LC_MEASUREMENT),默认纸张尺寸大小(LC_PAPER)和locale对自身包含信息的 概述(LC_IDENTIFICATION)。
eg:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.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_MONETARY
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"      #对自身包含信息的概述
LC_ALL=

locale定义文件放在/usr/share/i18n/locales

字符集就是字符,尤其是非英语字符在linux.net527.cn/index.html'>系统内 的编码方式,也就是通常所说的内码,所有的字符集都放在 /usr/share/i18n/charmaps,所有的字符集也都是用Unicode编号索引的。Unicode用统一的编号来索引目前已知的全部的 符号。而字符集则是这些符号的编码方式,或者说是在网络传输,计算机内部通信的时候,对于不同字符的表达方式,Unicode是一个静态的概念,字符集是 一个动态的概念,是每一个字符传递或传输的具体形式.

Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]].
生成的locale放在/usr/lib/locale/目录中

自定义locale

优先级的关系:
LC_ALL>LC_*>LANG
LC_ALL的值将覆盖所有其他的locale设定

查看zh_CN使用的编码:
/usr/lib/locale/zh_CN/LC_* 说明了使用何种编码

Linux 切换 locale 的四种方法
1) 从CDE登录屏幕上修改locale
选择 options -> languages -> choose the new locale
2) 临时设置locale(shell相关的)
ksh : LANG=
sh : LANG=
export LANG
csh : setenv LANG
bash: export LANG=en_US(zh.GBK)
3) vi /etc/default/init
add
LANG=
LC_ALL=
reboot。
4) .cshrc/.profile/.bashrc: 设置$LANG

对于计算机来说就是你要是用哪一种字符集,你就必须告诉你的linux系统,locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地 区的locale就是根据这几大类的习惯定义的,这些locale定义文件放在/usr/share /i18n/locales目录下面,所有的字符集都放在/usr/share/i18n/charmaps,所有的字符集也都是用Unicode编号索 引的。