你可以用Toad
for
Oracle
961这个工具去查看下表里面的数据是否就是乱码,如果是乱码在手动插入一条数据看是否是乱码,如果是这样的话就是本身数据库字符集编码不支持中文,
你可以sqlplus
后,select
userenv('language')
from
dual
执行这条sql语句,查看字符集编码是不是ZHS16GBK
,该编码支持中文,若不是该编码就要调整oracle字符集编码了
这个是语言字符集的问题,你数据库安装的时候使用了什么字符集? 如果不是下面的ZHS16GBK的话需要进行相应的修改就可以正常显示了,修改注册表Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb10g_home1 将键值改为如下内容
NLS_LANGNLS_LANG=AMERICAN_AMERICAZHS16GBK (英文环境)
或者
NLS_LANG=SIMPLIFIED CHINESE_CHINAZHS16GBK (简体中文环境)
如果你在windows下安装的是客户端的话,那就在
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\&1\NLS_LANG
&1=KEY_OraClient10g_home1
OR
&1=KEY_OraDb10g_home1 (第二种情况像我本机一样是服务器端和客户端共存,两个路径都有)另外我的系统是win7 64位专业版 如果按我提供的路径找不到NLS_LANG的键值的话,我悄悄告诉你用Ctrl+F和F3的组合搜索功能,搜索NLS_LANG也能找得到 这里ZHS16GBK可能要换成你的GB18030 自己尝试一下吧 。祝你好运。
cmd命令窗口字符编码不一致或不兼容。
1、查一下服务器端的字符集。
2、把客户端的字符集设置为一致的。
3、你要用sqlplus的话,先通过设置环境变量来定义客户端的字符集。
检查下你导出时候的环境变量,导入时的环境变量
比如
导出时NLS_LANG=AMERICAN_AMERICAZHS16GBK
导入时NLS_LANG没有设置,或者设置为其他字符集,则导入的库内汉字就有可能变成乱码。
解决方法,连接数据库的时候设置正确字符集即可。
oracle数据库服务器系统使用的是UTF-8编码或者是AL32UTF8编码
在Web应用中已经将请求编码设置为UTF-8编码
二进制数据的取得
Blob blogObj = rstgetBlob("CONTENT");
if(blogObj!=null){
byte[] content = blogObjgetBytes(1, (int) blogObjlength());
try {
newssetContent(new String(content));
} catch (UnsupportedEncodingException e) {
eprintStackTrace();
}
}
乱码问题的解决方法:
newssetContent(new String(content,“UTF-8”));
之后就不会出现乱码问题。
以上就是关于oracle 11g SQL PLUS 某些字符显示乱码,怎么解决全部的内容,包括:oracle 11g SQL PLUS 某些字符显示乱码,怎么解决、unix下oracle数据库中文乱码、cmd命令连接oracle数据库连接到三个字为什么是乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)