linux系统按下默认安装中文的话,并且oracle安装兼容中文安装且字符集为GBK的情况下,日志或错误显示的时候会出现乱码情况。这是由于和系统默认字符集不兼容情况照成的。
locale把按照所涉及到的文化传统的各个方面分成12个大类,这12个大类分别是:
1、语言符号及其分类 (LC_CTYPE)
2、数字(LC_NUMERIC)
3、比较和排序习惯(LC_COLLATE)
4、时间显示格式(LC_TIME)
5、货币单位(LC_MONETARY)
6、信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)
7、姓名书写方式(LC_NAME)
8、地址书写方式(LC_ADDRESS)
9、电话号码书写方式(LC_TELEPHONE)
10、度量衡表达方式 (LC_MEASUREMENT)
11、默认纸张尺寸大小(LC_PAPER)
12、对locale自身包含信息的概述 (LC_IDENTIFICATION)。
设定locale就是设定12大类的locale分类属性,即 12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量: LC_ALL和LANG。它们之间有一个优先级的关系: LC_ALL>LC_*>LANG 可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。
如果你设定了LC_ALL=zh_CN.UTF-8,那么不管LC_*和LANG设定成什么值,它们都会被强制服从 LC_ALL的设定,成为 zh_CN.UTF-8。
例如:
NLS_LANG 由三部分组成 : NLS_LANG=<NLS_LANGUAGE>_<NLS_TERRITORY>.<clients characterset>
:NLS_LANG=语言_地域_客户端字符集
LANG值为"en_US.UTF-8" 时,意味着NLS_LANG用以下格式设置 NLS_LANG=AMERICAN_AMERICA.AL32UTF8
如果LANG值为 "fr_FR.UTF-8" 那在 NLS_LANG设置的值就是 FRENCH_FRANCE.AL32UTF8.
修改 /etc/sysconfig/下 i18n文件,换成你想要的字符集即可。
例如,在rhel5.7下i18n文件内容如下
LANG="zh_CN.UTF-8"
如果要换成GBK字符集
LANG="zh_CN.GBK"即可
修改 /etc/sysconfig/i18n 文件,如
LANG="en_US",xwindow会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
SQL> show parameter nls_language
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_language string SIMPLIFIED CHINESE
以上是root用户下的设置修改。而oracle用户需要修改/home/oracle/.bash_profile下添加