服务器A用的是oracle8  安装的时候不知道选择的是什么字符集。
服务器B用的是oracle9 字符集默认中文。
从服务器B用sqlplus查询服务器A中一个表时,中文字段显示乱码。
然后从服务器B中把注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\NLS_LANG 的值修改为AMERICAN_AMERICA.US7ASCII(原先为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)后,在用sqlplus查询时中文字段显示正常。可是我用delphi做了一个,从服务器A数据导入到服务器B的程序。
直接把服务器A查询到的中文字段数据插入到服务器B表中,然后查询B表数据时那个中文字段是乱码高手帮忙如何解决此问题????
个人分析:
我在想是否是因为服务器B中的字符集改成和服务器A一样了,所以查询显示正常,但服务器B修改过注册表,不支持中文显示了,所以用软件往里导入中文的时候保存的是乱码??

解决方案 »

  1.   

    你看看在服务器A上显示那些字段是乱码吗?
    -----------------------
    不知道呢,我在服务器B上把字符集改成AMERICAN_AMERICA.US7ASCII以后,连接A服务器,查询到的就不是乱码
      

  2.   

    网上有关于更改字符集的文章你找找看看,是不是你的那步没有完成,delphi做的导库程序,你是怎样实现导入导出的?
      

  3.   

    网上有关于更改字符集的文章你找找看看,是不是你的那步没有完成,delphi做的导库程序,你是怎样实现导入导出的?
    ---------------------------
    就是查询出来的数据 一条一条用insert导入到数据库
      

  4.   

    struts2和中的中文乱码问题

    1. 在src中建立属性文件struts.properties,把如下内容放入:
        struts.devMode=false   struts.enable.DynamicMethodInvocation=true   struts.i18n.reload=true   struts.ui.theme=simple   struts.locale=zh_CN   struts.i18n.encoding=gbk   struts.serve.static.browserCache=false   struts.url.includeParams=none
       #有许多人说struts.i18n.encoding=utf-8,经多次验证不行,必须改为gbk.
    2.在web.xml中加入如下过滤器代码如下:
        <filter>        <filter-name>struts-cleanup</filter-name>        <filter-class>            org.apache.struts2.dispatcher.ActionContextCleanUp        </filter-class>     </filter>       <filter-mapping>        <filter-name>struts-cleanup</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>
      <!--注意,这个过滤器和原有过滤器的不存在先后问题(网上有人提出,其实是不正确的)-->
    二.mysql中文乱码问题
     1.在MySQL Server 5.x程序路径中找到my.ini文件,这是mysql配置文件,有许多mysql server的默认属性.
       用记事本打开,使default-character-set=utf-8.这样建表时,就不必考虑字符属性.
    三.javaweb中与mysql数据库交互时乱码问题:    连接数据库 String uri = "jdbc:mysql://127.0.0.1:[3306]/database?useUnicode=true&characterEncoding=gbk".
      以上时我使用的总结,并多次试验,均成立.
      

  5.   

    给一个本人写的一个参考贴子: http://topic.csdn.net/t/20030710/20/2014176.html
      

  6.   

    服务器B中把注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\NLS_LANG   的值修改为AMERICAN_AMERICA.US7ASCII
    ==============================================================================================================
    这样并不能修改数据库的字符集,可以
    select * from nls_database_parameters;
    验证。
    如果数据库 B 的字符集是数据库 A 的字符集的超集,A 到 B 的导入/导出通常没有问题,反之则不行。
      

  7.   

    服务器B中把注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO\NLS_LANG   的值修改为AMERICAN_AMERICA.US7ASCII
    ==============================================================================================================
    这样并不能修改数据库的字符集,可以
    select * from nls_database_parameters;
    验证。
    如果数据库 B 的字符集是数据库 A 的字符集的超集,A 到 B 的导入/导出通常没有问题,反之则不行。