服务器端是oracle 10G 64位的,字符集为:AMERICAN_AMERICA.US7ASCII
用navicat for oracle 连接正常,但中文显示乱码?如何解决呢?在网上查看看到一些做法,照着做了,下载了instantclient-basic-win32-11.2.0.1.0.zip(basic 32版),并解压后将navicat for oracle 的工具菜单---选项----OCI目录指向该文件夹,然后设置2个环境变量NLS_LANG:AMERICAN_AMERICA.US7ASCII
TNS_ADMIN:为instantclient-basic解压后的路径。
设置好后,用navicat for oracle 11和Navicat Premium 11.1.18均能正常连接
(数据连接配置选择basic类型)如图,
可以正常访问表中的内容,但只是中文显示为方框,不知什么原因?请高手赐教呀
补充一下,用其他数据工具可以连接,并且显示中文正常,如pl/sql 、 powerbuilder等
但navicat for oracle 11和Navicat Premium 11.1.18缺乱码,不知如何处理?
另外:
我的客户端微机原来装有oracle92的client端,注册表里的都改过,如pl/sql 、 powerbuilder等显示正常,但navicat for oracle中文还是乱码。
注册表的值:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"NLS_LANG"="american_america.US7ascii"

解决方案 »

  1.   

    参数改下试试吗。
    要想没有乱码,你的电脑字符集和oracle客户端字符集要一致,
    在中国默认字符集不是这个ZHS16GBK吗?,改下试试。
    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKhttp://blog.csdn.net/arlen1990/article/details/43194473
      

  2.   

    这个早就改过,
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
    "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
    "NLS_LANG"="AMERICAN_AMERICA.AL32UTF8"还有这个:
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
    "NLS_LANG"="american_america.US7ascii"
    三种字符集都改过,中文都是乱码呀
      

  3.   

    我前几天帮客户装oracle客户端,遇到这个问题,
    就是环境变量添加一个path
    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    这样就ok了
      

  4.   

    我前几天帮客户装oracle客户端,遇到这个问题,
    就是环境变量添加一个path
    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    这样就ok了
      

  5.   

    我前几天帮客户装oracle客户端,遇到这个问题,
    就是环境变量添加一个path
    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    这样就ok了
    请问你的oracle服务器端字符集是“AMERICAN_AMERICA.US7ASCII”吗?我的环境变量开始的时候就加了
    并且我还加了两个:
    NLS_LANG:AMERICAN_AMERICA.US7ASCII
    TNS_ADMIN:为instantclient-basic解压后的路径
    可我的的确不行呀?感觉你的服务器端的字符集本身就是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,所以才正常显示。
      

  6.   

    Navicat Premium默认自带了instantclient_10_2,但是其是base lite版本的(Basic Lite: Basic 的精简版本,其中仅带有英文错误消息和 Unicode、ASCII 以及西欧字符集支持),不支持中文字符集,如果服务器端oracle恰好是中文字符集,instantclient_10_2不适合,因此需要下载base版本。将Navicat Premium中的OCI library设置为D:\Databases\Oracle\instantclient_12_1_x64\oci.dll,然后重启即可。