我将props$中的NLS_CHARACTERSET设置为AL32UTF8,java可以正常读写泰文,
改为ZHS16GBK,则都是?,
问题是ps/sql中显示乱码,注册表中NLS_LANG为SIMPLIFIED CHINESE_CHINA.AL32UTF8时,
ps/sql 打不开表提示信息为乱码,改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,则提示中文错误:ora-06552:ps/sql:Compilation unit analysis terminated
ora-06553:pls-553:无法识别字符集名称NLS_LANG 为 AMERICAN_AMERICA.AL32UTF8 则提示英文错误,与上边一样,
问题是如何设置能让ps/sql中显示泰文,并java能正常存取?
(也可以换字符集,但最好包含大多数大国家,中日韩英泰……越多越好)
谢谢了 弄好几天了

解决方案 »

  1.   

    还有个问题就是props$中的NLS_CHARACTERSET设置为ZHS16GBK时pl/sql可以双击打开table,设置为AL32UTF8,双击table,提示上边的错误信息。
      

  2.   

    统一都变成UTF的编码,从服务器到客户端都需要,如果你之前的用的其它编码插入的话,这个问题就大了,,
      

  3.   

    NLS_CHARACTERSET设置为AL32UTF8是服务器端的字符集吧?
    如果是为什么要改为ZHS16GBK呢?
    如果你从基于windows中文客户端使用PL/SQL来连接服务器,则客户端可以设置NLS_LANG为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,字符集由oracle net来转换基于window客户端设置NLS_LANG在Window平台,使用注册表来设定Oracle的NLS_LANG参数    a.打开注册表(运行中输入regedit后确定)    b.逐个键展开(COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_hom1)    c.找到NLS_LANG子项,如为该子项输入值SIMPLIFIED CHINESE_CHINA.ZHS16GBK详细可以参考这里:
    Oracle 全球化特性与字符集
      

  4.   

    谢谢二位的回答。
    现在的问题是服务器和客户端我都设置成AL32UTF8,java可以读写,没问题。
    问题是pl/sql泰文是问号。中文,日文,韩文,繁体中文都能显示。
    目前正研究是不是字体不支持
      

  5.   

    貌似不是字体的事,无论我设置什么字体,即使显示的是乱码,复制到word里还是原来的,但泰文依旧是问号,怀疑oracle服务器按照客户端注册表设置的ZHS16GBK转换,泰文转换过来就是问号。。
      

  6.   

    注册表nls_lang设置成AMERICAN_AMERICA.AL32UTF8,ps/slq查询中、泰文都是乱码