设置 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_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