数据库字符集
NLS_CHARACTERSET  AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
数据库表中有的存有中文汉字,有的存有法文,有的存英文
现在希望解决的是用sqlplus连到数据库中,能够正常显示各种国家的文字
目前进展:
set NLS_LANG=american_america.AL32UTF8
则中文不能够正常显示,法文也不能
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
则中文可以正常显示,法文不可以正常显示
请帮忙
谢谢

解决方案 »

  1.   

    同情楼主,不过我觉得你是不是可以换个思维,区分数据语言后,不要用sqlplus显示,而是用自己的客户端显示,这样可以根据编码进行转换
      

  2.   

    用plsqldeveloper查看,汉字和法语都正常的
    只是无法在sqlplus中都正常
    所以请教
    谢谢帮忙顶
      

  3.   

    sqlplus 是依靠NLS_LANG来进行转换的,所以一个sqlplus可以对应一种语言,如果你配置多个session,每个sqlplus的NLS_LANG不同的话,也可以,比如多个用户,每个用户设置不同的环境变量,对应一种语言
    但是如果你同时要看中文和法文,那就不知道该怎么弄了
      

  4.   

    plsql developer--report--dba--NLS database parameters
    看看那里是怎么设置的.
      

  5.   

    Parameter Value 
    NLS_CALENDAR GREGORIAN 
    NLS_CHARACTERSET AL32UTF8 
    NLS_COMP BINARY 
    NLS_CURRENCY $ 
    NLS_DATE_FORMAT DD-MON-RR 
    NLS_DATE_LANGUAGE AMERICAN 
    NLS_DUAL_CURRENCY $ 
    NLS_ISO_CURRENCY AMERICA 
    NLS_LANGUAGE AMERICAN 
    NLS_LENGTH_SEMANTICS BYTE 
    NLS_NCHAR_CHARACTERSET UTF8 
    NLS_NCHAR_CONV_EXCP FALSE 
    NLS_NUMERIC_CHARACTERS ., 
    NLS_RDBMS_VERSION 10.2.0.1.0 
    NLS_SORT BINARY 
    NLS_TERRITORY AMERICA 
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM 
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 
    NLS_TIME_FORMAT HH.MI.SSXFF AM 
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR 
    那里设置成这样的