问题:
有两个oracle数据库,其中一个字符集是简体中文,一个是us7ascii,
现在通过一个web服务器提供对以上数据库的数据查询,
在web服务器装oralce sqlnet8i客户端没有注意字符集问题,安装后
访问简体中文数据库时中文显示正常,另一个则中文显示不正常。
把注册表字符集改为us7ascii,则简体中文数据库不能正常显示中文,
:(
问:在不修改两个数据库字符集的前提下,如何通过一台web服务器
对他们进行正常查询?

解决方案 »

  1.   

    在WEB上,修改注册表中HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG为:
    AMERICAN_AMERICA.WE8ISO8859P1,试试。
      

  2.   

    1.放假时,把服务器1,服务器2和现在的客户端的字符集全部抄下;
    2.imp两台服务器作数据备份;
    3.确保无误后,全部修改注册表中HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG为:
    AMERICAN_AMERICA.WE8ISO8859P1;
    4.全部重启。
    5.若不行,再改回来。
      

  3.   

    不好意思,我也没有研究过。不过你试试在你的html或jsp中加上charset=gb2312
    把gb2312换成你想要的字符集,不行的话我也没办法了,呵呵。
      

  4.   

    就是需要web服务器的oracle客户端能识别两种字符集!也就是说你的oracle客户端需要选择一种合适的字符集!你用unicode标准的字符集试试,如果这都不行的话可能就不行了!
      

  5.   

    可以说如果你两个数据库的字符集不保持一致的话,你很难达到想要的效果,因为你的client端只能确定一种字符集,即便在访问的脚本里动态控制,也是非常麻烦的一件事情,所以说如果你不是非要故意把两个数据库装成那两个不同的字符集,那只能是一个失误:((
      

  6.   

    to jiezhi:
    如何使用utf8?
      

  7.   

    该注册表字符集为:AMERICAN_AMERICA.WE8ISO8859P1
    不行!
      

  8.   

    oracle有没有这种通用中文简体字符集呢?
    若有就好了。
    责任全在oracle公司、oracle中国代理及软件开发商。
    最后受罪总是可怜巴巴的用户。
      

  9.   

    不会要架设两个web服务器吧?
      

  10.   

    你可以试试
    例如:
    if 访问 us7ascii
    then
    rs.sql('alter session set nls_lang=us7ascii');
    rs.sql('select * from test');else
    rs.sql('alter session set nls_lang=zhs16cgb231280');
    rs.sql('select * from test');
      

  11.   

    修改注册表中HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG为:
    AMERICAN_AMERICA.utf8,试试。