程序跑的服务器
[test@test205 bin]$ env |grep NLS_LANG
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKoracle数据库
SQL> select * from V$NLS_PARAMETERS;PARAMETER                                                        VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE                                                     SIMPLIFIED CHINESE
NLS_TERRITORY                                                    CHINA
NLS_CURRENCY                                                     RMB
NLS_ISO_CURRENCY                                                 CHINA
NLS_NUMERIC_CHARACTERS                                           .,
NLS_CALENDAR                                                     GREGORIAN
NLS_DATE_FORMAT                                                  DD-MON-RR
NLS_DATE_LANGUAGE                                                SIMPLIFIED CHINESE
NLS_CHARACTERSET                                                 ZHS16GBK
NLS_SORT                                                         BINARY
NLS_TIME_FORMAT                                                  HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT                                             DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT                                               HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT                                          DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY                                                RMB
NLS_NCHAR_CHARACTERSET                                           AL16UTF16
NLS_COMP                                                         BINARY
NLS_LENGTH_SEMANTICS                                             BYTE
NLS_NCHAR_CONV_EXCP                                              FALSE通过程序读取中文是没问题, 写入 中文就是乱码了,急@!!!!!!!!!!!!!

解决方案 »

  1.   

    NLS_NCHAR_CHARACTERSET
    NLS_CHARACTERSET 
    不一致
      

  2.   

    NLS_NCHAR_CHARACTERSET 
    也要改成  ZHS16GBK 
    ?
    怎么改的??
      

  3.   

    "通过程序读取中文是没问题, 写入 中文就是乱码了,急@!!!!!!!!!!!!!"本地的环境变量中
    set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK  
    然后用sqlplus直接向数据库写数据试试。
      

  4.   

    sqlplus直接向数据库写数据都没问题的. insert 中文是没问题的.程序是在 linux环境下的. 有注册表的么??
      

  5.   

    #5的方法,每次插入前手动set
      

  6.   

    ???楼上能否说清楚点, 手动set 是指代码里set???odbc的接口是怎么收到set的????
      

  7.   

    to  zxf_feng
    已经设了
    [test@test205 bin]$ env |grep NLS_LANG 
    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 
     
     
      

  8.   

    检查一下注册表里的值,或者是在程序跑的服务器上用sqlplus连一下数据库服务器,看有没有出现乱码。
      

  9.   

    在程序跑的服务器上,用sqlplus insert一条中文是正常的,但是用odbc自带的isql   insert 一条中文就是乱码了,难道是odbc接口问题???