oracle 插入中文查询显示乱码,问号是什么原因

 我来答
micro0369
2017-09-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4079万
展开全部

首先,检查DB中字符集,可以通过以下的SQL来查得,

SELECT * FROM v$nls_parameters;

或者

SELECT USERENV ('language') FROM DUAL;

比如查询结果:

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

那么字符集就是:ZHS16GBK;

然后设置客户端的本地字符集:

注册表:

默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
这里您会看到一个条目名为NLS_LANG


在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_<oracle_home_name>

或者环境变量:'我的电脑' -> '属性' > '高级'  -> '环境变量'

增加一个:nls_lang = SIMPLIFIED CHINESE_CHINA.ZHS16GBK


重启一下机器就可以了。

百度网友f81c7e5e39
2017-09-27 · TA获得超过399个赞
知道小有建树答主
回答量:553
采纳率:56%
帮助的人:74.4万
展开全部
在网上查找了很多想多的帖子,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。
那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。
查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式