设置 UNIX环境下的NLS_LANG
如何设置 NLS_LANG 变量
1) 正确配置 LC_ALL 参数
2) 配置 telnet/ssh/SecureCRT 客户端的字符集
linux中可以用locale命令来查看 NLS_LANG设置,如下例所示
[root@HXZG ~]# 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_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=
大多数unix版本都是以下默认设置“C”,
[oracle@HXZG ~]$ locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
“C” 代表着 NLS_LANG为 US7ASCII,这就意味着你的终端只能显示a-z, A-Z and 0-9这些字符
Unix环境可以通过export LC_ALL 指定一个值来设置语言环境变量
[oracle@HXZG ~]$ export LC_ALL=en_US.UTF-8
[oracle@HXZG ~]$ 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_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=
[oracle@HXZG ~]$ export LC_ALL=zh_CN.gb2312
[oracle@HXZG ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.gb2312"
LC_NUMERIC="zh_CN.gb2312"
LC_TIME="zh_CN.gb2312"
LC_COLLATE="zh_CN.gb2312"
LC_MONETARY="zh_CN.gb2312"
LC_MESSAGES="zh_CN.gb2312"
LC_PAPER="zh_CN.gb2312"
LC_NAME="zh_CN.gb2312"
LC_ADDRESS="zh_CN.gb2312"
LC_TELEPHONE="zh_CN.gb2312"
LC_MEASUREMENT="zh_CN.gb2312"
LC_IDENTIFICATION="zh_CN.gb2312"
LC_ALL=zh_CN.gb2312
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.
也可以通过export设置LANG
[oracle@HXZG ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[oracle@HXZG ~]$ locale | grep LANG
LANG=en_US.UTF-8
转载于:https://blog.51cto.com/evils798/1420846