江湖救急,恢复乱码数据
原来存储数据之前没有内码转换,就直接
String fld1 = request.getParameter("fld1");
其实此值含有中文,所以存到sql server中的值为
?DoE§O§e?J‥I¥I!MAAAA!T
有什么方法可以恢复阿,因为现在有100笔数据了,期待中。。。
问题点数:200、回复次数:14Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-11-23 09:25:40 得分 80
String fld1 = new String(((String)request.getParameter("fld1")).getBytes("iso-8859-1"),"gb2312");
Top
2 楼eureka0891(迷茫中...)回复于 2005-11-23 09:32:47 得分 50
用和 jFresH_MaN(十一月的萧邦-夜曲) 相反的方法,
从数据库里读时用:
String str=new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312");
Top
3 楼duyhui(一天到晚游泳的鱼)回复于 2005-11-23 09:40:17 得分 10
用楼上的方法试试,得进行编码转换Top
4 楼soloxiao(红色孤独)回复于 2005-11-23 09:41:51 得分 0
系统是繁体
我在jsp上端有写contentType="text/html; charset=Big5"
Top
5 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-11-23 09:44:50 得分 30
你需要结合jFresH_MaN(十一月的萧邦-夜曲)和eureka0891(迷茫中...) 的方法。
在程序中用jFresH_MaN(十一月的萧邦-夜曲)取参数,然后再存入数据库。
至于你数据库中的乱码,那你就用eureka0891(迷茫中...) 的方法,进行编码转换,这样就能恢复了,然后你把取出来的正常的文字再存到数据库中,也就是更新一下数据库中的数据。Top
6 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-11-23 09:46:58 得分 0
最关键的是把你原来的数据取出来,进行编码转换恢复到正常的中文以后存入数据库,进行更新。
在以后的取参数的时候你就用jFresH_MaN(十一月的萧邦-夜曲)的方法对取来的参数进行转码,这样确保存入到数据库中的中文是正常的。Top
7 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-11-23 09:53:39 得分 0
系统是繁体
我在jsp上端有写contentType="text/html; charset=Big5"
----
这个编码对于http请求是没有关系的啊。
你还是得要转iso-8859-1到big5Top
8 楼soloxiao(红色孤独)回复于 2005-11-23 09:55:53 得分 0
谢谢大家,不过还是没有解决问题
后面存储的数据我都可以处理,现在的问题是恢复 原来存储的记录,我用‘迷茫中...’的方法
String str=new String(rs.getString(1).getBytes("iso-8859-1"),"big5");还是不行
系统是繁体,谢谢了Top
9 楼soloxiao(红色孤独)回复于 2005-11-23 09:59:59 得分 0
是不是原来存储的方法到数据库后,实际数据已经找不回来了???
Top
10 楼soloxiao(红色孤独)回复于 2005-11-23 14:20:18 得分 0
十一月的萧邦-夜曲, 请问还有其他方法吗?Top
11 楼TinyJimmy(Jimmy)回复于 2005-11-23 14:32:24 得分 10
要搞清除乱的真正原因才可能回复, 大家都知道是编码转错了, 就是要知道错在哪里, GBK->IS08859-1 还是Big->GBK. 有些转换是不可逆的Top
12 楼snowwolf9999()回复于 2005-11-23 18:45:10 得分 10
又见乱码问题~
留个记号吧Top
13 楼those8377(悟能)回复于 2005-11-23 18:52:22 得分 10
顶分Top
14 楼soloxiao(红色孤独)回复于 2005-11-26 11:35:42 得分 0
期待解决方法Top




