开始在本地建库时用的默认字符集。
后来连接远程服务器,中文字符显示为乱码。所以将本地字符集改为与远程一致(US7ASCII)。改完后,可以显示远程数据库中的中文字符,但在本地sqlplus等工具中,提示信息为中文时都为乱码。并且sqlplus菜单也为乱码。
这要怎么办?
后来连接远程服务器,中文字符显示为乱码。所以将本地字符集改为与远程一致(US7ASCII)。改完后,可以显示远程数据库中的中文字符,但在本地sqlplus等工具中,提示信息为中文时都为乱码。并且sqlplus菜单也为乱码。
这要怎么办?
然后把注册表中oracle的nls改为SIMPLIFIED CHINESE_CHINA.US7ASCII。并且把下面键值为home的nls也改为SIMPLIFIED CHINESE_CHINA.US7ASCII。还是无效,提示信息显示仍为乱码。
ALTER SESSION SET NLS_LANGUAGE= 'SIMPLIFIED CHINESE';
SIMPLIFIED CHINESE_CHINA.ZHS16GB231280
装oracle时语言与系统的语言不一致吧
选择:
[数据库字符集]为“ZHS16GBK”,[国家字符集]为“AL16UTF16”
使用plsql developer 版本与系统一直就应该没问题了
中文系统,刚装完oracle没有修改字符集时没有任何问题。但修改过字符集之后,提示信息和sqlplus菜单中的中文都变为乱码。
这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,
如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因为改的只是dmp文件,所以影响不大。具体的修改方法比较多,最简单的就是直接用UltraEdit修改dmp文件的第2和第3个字节。比如想将dmp文件的字符集改为ZHS16GBK,可以用以下SQL查出该种字符集对应的16进制代码:
SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;0354然后将dmp文件的2、3字节修改为0354即可。如果dmp文件很大,用ue无法打开,就需要用程序的方法了