查看服务端字符集:
依照内容形式,添加环境变量:
查看客户端、会话中的字符集:
注册表:
还是乱码:
在oracle数据库中,任何以select形式查到的字符集,都是客户端字符集,用select是查不到服务端字符集的(网上很多文章都是错的)。
对于oracle数据库而言,查询显示乱码,是由于客户端字符集和代码页字符集不一致导致的,与服务端字符集关系不大。
在你这个例子里,客户端字符集在环境变量中配置,代码页字符集即为cmd窗口的字符集,可以通过输入chcp 936切换成gbk,或者输入chcp 65001切换成utf8,之后再连接数据库操作。
建议你把环境变量NLS_LANG改成
SIMPLIFIED CHINESE_CHINA.AL32UTF8
然后打开cmd,输入chcp 65001回车,再连接数据库执行查询。
另外,如果数据本身就已经是乱码进的数据库,你怎么改设置也还会是乱码,这种情况需要进行对数据进行转码处理了。