Oracle中汉字乱码解决

  用SQL Navigator查询数据库,发现汉字全部显示乱码;用ADO.NET,显示在网页上依然乱码。

     开始以为是网站问题,于是在web.config配置文件准哦功能添加:

1 <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" fileEncoding="utf-8"/>

依然乱码。
    肯定不是服务器端数据库问题,因为服务器上架设的网站用同一个数据库正常。那可能就是我的本机上Oracle数据库问题了。

  用SQL语句:

1 select userenv('LANGUAGE') from dual 

    发现查询结果的语言为 AMERICAN_AMERICA.ZHS16GBK

于是

     CMD  regedit打开注册表,HKEY_LOCAL_MACHINE->SOFTWARE->Oracle,将NLS_LANG设置为AMERICAN_AMERICA.ZHS16GBK,结果网页上查询出来的结果正常,但是用SQL Navigator查询出来的结果却依然是乱码。再改HKEY_LOCAL_MACHINE->SOFTWARE->Oracle->HOME0中的NLS_LANG也改了,发现还是不行。

    通过同事帮忙,才知道:后一个应该改为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    真是奇葩啊。

总结一下,需要改以下:

HKEY_LOCAL_MACHINE->SOFTWARE->Oracle,将NLS_LANG设置为AMERICAN_AMERICA.ZHS16GBK;

HKEY_LOCAL_MACHINE->SOFTWARE->Oracle->HOME0中的NLS_LANG设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

同事说只需要改后面一个就行了,诶,算了,不试验了,显示正常就行。

 

你可能感兴趣的:(oracle)