日期:2014-05-20  浏览次数:20693 次

oracle字符集转换,烦恼?
源数据库的  
  NLS_CHARACTERSET : ZHS16GBK
  NLS_NCHAR_CHARACTERSET : AL16UTF16
   
  目的数据库的  
   
  NLS_CHARACTERSET : US7ASCII  
  NLS_NCHAR_CHARACTERSET :AL16UTF16

现要从源数据库检索数据insert into 到目的数据库中,发现所有的中文都变成乱码(?)。也用了网上的一些办法(new String(iso.getBytes("GB2312"),"ISO-8859-1")),也没能成功,还是问号,请问该怎么解决?实在没有办法了。。。多谢!


--------------------------------
以下内容为自动编辑的内容,并非楼主的发贴内容,此仅用于显示而已,并无任何其他特殊作用
楼主【payment】截止到2008-08-04 16:11:09的历史汇总数据(不包括此帖):
发帖的总数量:2 发帖的总分数:20 每贴平均分数:10  
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%  
结贴的总数量:1 结贴的总分数:20  
无满意结贴数:0 无满意结贴分:0  
未结的帖子数:1 未结的总分数:0  
结贴的百分比:50.00 % 结分的百分比:100.00%  
无满意结贴率:0.00 % 无满意结分率:0.00 %  
楼主加油
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=payment

------解决方案--------------------
new String(str.getBytes("xxx"), "xxx");
几种编码都试过了?
------解决方案--------------------
字符问题一直是个很难缠的问题
1、你先查询出源数据库的值,打印出看是否是乱码
2、如果不是你再用普通的字符向目的数据库插入,查看数据库中的值是否为乱码
一般情况下查询出来的值的字符类型和数据库的类型相同,再将此数据转为ascii存到数据库后就会是乱码
而此数值查询出后还需要转码才能显示为汉字,其中需要多次转码,太麻烦了

源数据库查询--(此处不用转码)---显示到页面---(需从GBK--ASCII换吗)--向目标数据库插入值---(从ascii--gbk)--查询显示
------解决方案--------------------
引用楼主 payment 的帖子: 目的数据库的

NLS_CHARACTERSET : US7ASCII
NLS_NCHAR_CHARACTERSET :AL16UTF16