乱码还原问题!

emin_lee 2006-06-10 07:33:01
请大家帮忙!

从页面提交信息入库时,忘记设置 request.setCharacterEncoding("GBK") ,入库后所有中文为乱码。
请教:
如果想要从数据库中把乱码还原成中文,如何才能够办到?

谢谢!
...全文
723 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
emin_lee 2006-06-22
  • 打赏
  • 举报
回复
没有得到答案!
先揭帖!

谢谢诸位!
以后再发帖请教!
emin_lee 2006-06-16
  • 打赏
  • 举报
回复
路过的各位,帮忙看看这几个帖子,看怎么解决;)
谢谢啦!

关于客户端页面从数据库中读取大量图片的问题
http://community.csdn.net/Expert/TopicView3.asp?id=4816106

乱码还原问题!
http://community.csdn.net/Expert/TopicView3.asp?id=4813786

关于javabean反射代理的问题
http://community.csdn.net/Expert/TopicView3.asp?id=4813935

大家帮忙顶顶!
emin_lee 2006-06-15
  • 打赏
  • 举报
回复
谢谢楼上~
emin_lee 2006-06-14
  • 打赏
  • 举报
回复
使用的是oracle9i,linux下的,如何得到其编码类型呢?
jk3278jk 2006-06-14
  • 打赏
  • 举报
回复
要看数据库是什么编码。

如果没加request.setCharacterEncoding("GBK"),默认接收的应该是iso8859-1编码。

正常情况下将iso8859-1转到gb2312应该可以,
但现在不知道数据库默认为何种编码,可能还要再转一次,先把数据库编码到iso8859-1再到gb2312就行了。
jk3278jk 2006-06-14
  • 打赏
  • 举报
回复
oracle9i有管理工具 ,可以设置和查看编码
emin_lee 2006-06-13
  • 打赏
  • 举报
回复
我试了~

我基本上做了所有可能的转换。
下面是测试的类:

import java.io.UnsupportedEncodingException;

public class StringEncodingTest {

public StringEncodingTest() {

super();
}

public String getString(String aString, String encodingOld,
String encodingNew) {

if (aString == null) {
return "";
}
try {
byte bs[] = aString.getBytes(encodingOld);
return new String(bs, encodingNew);
}
catch (UnsupportedEncodingException uee) {
return "";
}
}

public static void main(String[] args) {

StringEncodingTest test = new StringEncodingTest();
String testString = new String("±±??ó??¢?§?o");
String[] encodingStart = new String[] {"iso-8859-1", "GBK", "gb2312",
"UTF-8", "big5"};
String[] encodingEnd = new String[] {"iso-8859-1", "GBK", "gb2312",
"UTF-8", "big5"};
try {
for (int i = 0; i < encodingStart.length; i++) {

System.out.println(encodingStart[i] + " = "
+ new String(testString.getBytes(encodingStart[i])));

for (int j = 0; j < encodingEnd.length; j++) {
System.out.println(encodingEnd[j] + " = "
+ new String(testString.getBytes(encodingEnd[j])));
System.out.println("from " + encodingStart[i] + " to "
+ encodingEnd[j]);
System.out.println(test.getString(testString,
encodingStart[i], encodingEnd[j]));
}

}
}
catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
}

}


各位也帮忙测测,看看这样思路是否正确:)
china2001ok 2006-06-13
  • 打赏
  • 举报
回复
应该读出来 然后看是什么编码 再转换为GBK 就可以了啊 LZ可以拿一条记录试一下嘛
vacuumboy 2006-06-12
  • 打赏
  • 举报
回复
不需要
emin_lee 2006-06-12
  • 打赏
  • 举报
回复
谢谢各位!

入库之前,没有加 request.setCharacterEncoding("GBK"),得到的内容是乱码,linux9 系统环境,数据库是oracle9i。

难道真的无计可施?
xiongbing528 2006-06-12
  • 打赏
  • 举报
回复
没的救了
YuLimin 2006-06-12
  • 打赏
  • 举报
回复
要分清入库前是什么样的内容?是否乱码?

MySQL也有编码问题的
emin_lee 2006-06-11
  • 打赏
  • 举报
回复
楼上:

是否应该先知道现在存入库中的乱码是何种编码?
vacuumboy 2006-06-11
  • 打赏
  • 举报
回复
先读出来,然后用GBK编码以后再重新写入数据库
emin_lee 2006-06-11
  • 打赏
  • 举报
回复
?
emin_lee 2006-06-11
  • 打赏
  • 举报
回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧