DOS窗口的属性:
Current code page 950 Traditional Chinese Big5
936 Simplified Chinese GBK
此处设置只对dos窗口中的数据显示正确与否有关,对于输出文件字符正确与否无关。
可以通过Control Panel->Regional and language options->Advanced->Language for non-Unicode programs选择更改。
那么命令行的SET NLS_LANG,注册表里的NLS_LANG设置,与系统环境变量NLS_LANG的设置哪个启作用呢?
测试比较下来,优先次序是:
[@more@]DOS窗口的属性:
Current code page 950 Traditional Chinese Big5
936 Simplified Chinese GBK
此处设置只对dos窗口中的数据显示正确与否有关,对于输出文件字符正确与否无关。
可以通过Control Panel->Regional and language options->Advanced->Language for non-Unicode programs选择更改。
那么命令行的SET NLS_LANG,注册表里的NLS_LANG设置,与系统环境变量NLS_LANG的设置哪个启作用呢?
测试比较下来,优先次序是:
DOS窗口中set NLS_LANG=Simplified Chinese_China.ZHS16GBK
> 系统环境变量 NLS_LANG=Traditional Chinese_TAIWAN.ZHT16BIG5
> 注册表NLS_LANG=American_America.AL32UFT8
另外通过SQLPLUS中途, SQL>$ set NLS_LANG= FRENCH_CANADA.WE8ISO8859P1 是无法改变当前session的NLS_LANG设置的。
没有通过环境变量设置NLS_LANG,那也要看注册表里的设置了。注册表的NLS_LANG设置在多个ORACLE_HOME是也要注意哪个是当前的HOME,这时环境变量里设置的ORACLE_HOME不起作用,而要看注册表里ALL_HOMES下的DEFAULT_HOME的指定。如这里DEFAULT_HOME是OraDB10_home1,而此HOME下的NLS_LANG的设置为French_Canada.ZHS16GBK,那dos中的介面语言也会变成法语:
法语登录介面:
Language_Territory.Charset中,以上种种语言,地区的设置都是对介面语言的选择有影响,但对于客户端导出文本时charset字符集才是关键。现在服务器端字符集是AL32UTF8,用SPO导出数据的SQLPLUS可以设置为ZHS16GBK或者ZHS16CGB231280中文都不会有问题。虽然AL32UTF8并不是ZHS16GBK, ZHS16CGB231280的超集,中文自动转换了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1513/viewspace-1031796/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/1513/viewspace-1031796/