加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 15:50:32 所属栏目:百科 来源:网络整理
导读:iamlaosong文 导入服务器Oracle数据库中汉字都是问号“?”,查数据库的字符集没问题,那么就是客户端的问题。 查Oracle用户的环境变量,发现没有设置 NLS_LANG,在.bash_profile文件中增加: export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 重新导入数据,汉字

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读