1 NLS_LANGUAGE SIMPLIFIED CHINESE
2 NLS_TERRITORY CHINA
3 NLS_CURRENCY ¥
4 NLS_ISO_CURRENCY CHINA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
9 NLS_CHARACTERSET AL32UTF8
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY ¥
16 NLS_NCHAR_CHARACTERSET AL16UTF16
17 NLS_COMP BINARY
18 NLS_LENGTH_SEMANTICS BYTE
19 NLS_NCHAR_CONV_EXCP FALSE
 上面是我的oracle参数,在客户端保存数据中文出现了乱码,但是我在测试服务上的时候就没有这种现象
乱码数据如下:
北京大学
天津大学
河南科技
本地测试�����������������似��ѧУ
22w��������
���ֺ�ר
���վ�óְҵ����ѧԺ
��Դְҵ����ѧԺ799
ff
测试字符9877
�������ݽ�ͨѧУ����
���ϴ�ѧ797978
111111111111111111111111111111111111133333333333333333344444��������
想问一下乱码有没有什么办法恢复,
求高手指教1

解决方案 »

  1.   

    设置注册表的字符集与服务器字符集一样,
    SELECT sys_context('userenv', 'language') FROM dual;
    注册表路径类似如下:
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1\NLS_LANG
      

  2.   

    导入的数据?其它数据库exp,然后imp的数据?
      

  3.   

    查看数据库字符集: select * from sys.props$ where name='NLS_CHARACTERSET'; 修改数据库字符集:
     
     shutdown immediate;
     startup mount exclusive;
     alter system enable restricted session ;
     alter system set job_queue_processes = 0;
     alter system set aq_tm_processes =0;
     alter database open;
     alter database national character set AL16UTF16 ;
            如果报错则更改成:ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
     alter database character set zhs16GBK ;
            如果报错则更改成: ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK ;
     shutdown immediate ;
     startup
    如果错误信息,请对照一下信息
    如果提示:
            ORA_12717 :Cannot issue ALTER DATABASE NATIONAL CHARACTER SET when NCLOB,NCHAR or NVARCHAR2 data exists 
    则改成以下语句:
    alter database national character set INTERNAL_USE AL16UTF16 ;
    如果提示:
            ORA-12712 :new character set must be a superset of old character set ;
    则更改使用以下语句:
    alter database CHARACTER SET INTERNAL_USE ZHS16GBK;
    如果提示:
            ORA-12721: operation cannot execult where other sessions are active 
    则更改使用以下语句:
    shutdown immediate;
    startup mount exclusive ;
    如果提示:
            ORA-01109:database not open 
    则使用以下语句:
    alter database open ;
    如果提示:
            ORA-12719:operation requires database is in restricted mode ;
    则使用以下语句
    alter system enable restricted session ;
      

  4.   

    你的数据库服务器的字符集是AL32UTF8,首先你要确定你的字符集是否支持中文,如不支持,需要修给oracle数据库字符集。
    具体参考如下:
    http://blog.sina.com.cn/s/blog_4cb222720100pvmk.html