让SQLPlus假脱机输出Unicode字符,输出为?

时间:2011-08-24 16:46:17

标签: oracle utf-8 oracle10g sqlplus

我试图让Oracle sqlplus(10.2)在Linux机器上移出Unicode数据。我找到了几个关于这个问题的讨论,但没有明确的答案,除了检查区域设置并将NLS_LANG设置为AL32UTF8。所有语言环境信息都设置为“en_US.UTF-8”,我会根据请求发布完整输出。

操作系统(vi等)将识别并接受Unicode字符而不会出现问题。但是,使用sqlplus时,所有非ASCII字符都更改为?字符。 Oracle DB的NLS_CHARACTERSET设置为AL32UTF8,NLS_NCHAR_CHARACTERSET设置为AL16UTF16。

我是否遗漏了一些需要为sqlplus本身设置的设置或开关?任何想法都会非常感激。

1 个答案:

答案 0 :(得分:11)

我找到了答案。显然,在shell脚本中设置NLS_LANG(正确的设置是AMERICAS_AMERICA.AL32UTF8)不起作用。它必须导出:

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8