导入Oracle数据库中的汉字都是问号

来源:互联网 发布:盈建科软件多少钱一个 编辑:程序博客网 时间:2024/05/23 14:53

iamlaosong文

导入服务器Oracle数据库中汉字都是问号“?”,查数据库的字符集没问题,那么就是客户端的问题。

查Oracle用户的环境变量,发现没有设置NLS_LANG,在.bash_profile文件中增加:

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

重新导入数据,汉字显示正常。

另外,环境变量LANG用于Linux界面显示,和Oracle数据库无关。附一篇关于LANG的小网文备查。

附:设置linux环境变量LANG

 一般来说要设置 Linux 系统的环境变量只需要在 /etc/profile (全局) 或者 ~/.bashrc (单个用户) 即可。但是对于 LANG 变量来说,有时候你即使在所有这些初始化脚本里面 export 过了,LANG 的值还是纹丝不动。实际上,你需要去修改 /etc/sysconfig/i18n 文件里面的内容。

vi /etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

LANG="en_US"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

 

     用ssh登录LINUX时,ssh终端有时会出现乱码,即使你设置LANG=en_US.UTF-8也一样.我试过SecureCRT,OpenSSH,SSH Secure Shell的客户端,都出现过这问题.有时更改一下客户端的设置就好了,但是有时更改客户端的设置后只能运行一次某个命令,之后又变成乱码了.

     一个偶然的机会,在网上看到有人说将LANG变量的值改成"C"就行了.不过还真邪了,就来个LANG=C,什么问题都解决了,也不用设置客户端了,真是莫名其妙!不过到现在还不知道那个"C"是什么意思,它咋就那么厉害(其实随便设置若干个个字母,或者直接置空:export LANG="",问题都能解决,只要不是zh_CN.UTF-8)


0 0
原创粉丝点击