SmartUpload取表单内容存入 mysql 数据库变成乱码!怎么解决!
String Topic=mySmartUpload.getRequest().getParameter("title");
out.print(Topic);//能正常显示中文啊!
可是存入MYSQL数据库后就变成乱码了!为什么啊!
网上的都说用这个request.setCharacterEncoding("ISO-8859-1");
可request都没有用来接受表单的内容,改怎么修改才行呢???
问题点数:100、回复次数:13Top
1 楼zhutouzip(醒了的鸟)回复于 2005-04-04 18:23:09 得分 10
你既然得到的Topic能正常显示,出现乱码就可能是在插入数据库中出现乱码了,一下几种方法你试一下:
(1)在连接数据库的url后面加上:characterEncoding="gb2312"
(2)在mysql的my.ini文件中加入default-character-set=gb2312
(3)String Top=new String(Topic.getBytes("ISO-8859-1"),"gb2312);这样转换后再插入数据库!
都试试吧!Top
2 楼xiangbo520(充栋汗牛)回复于 2005-04-04 18:28:50 得分 0
楼上的高手也!Top
3 楼zhutouzip(醒了的鸟)回复于 2005-04-04 18:36:37 得分 5
(3)的gb2312少了个反引号,改正一下!Top
4 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-04 18:36:59 得分 85
我觉得一楼的解决方案可以修改一下
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk
(3)既然打印出来都没有问题,这个就没有需要了
Top
5 楼xtuyaowu(tzjz)回复于 2005-04-04 18:48:04 得分 0
upTop
6 楼syliang2003(祝天下有情人终成扣肉)回复于 2005-04-04 19:25:33 得分 0
getBytes("ISO-8859-1") 就用这个了,只要写进数据库时没乱码,以后读出来就不会乱码了,!~小弟也曾深受乱码的困扰!Top
7 楼ljm983(ljm)回复于 2005-04-05 09:53:26 得分 0
:?useUnicode=true;characterEncoding=gbk;
和:?useUnicode=true;characterEncoding=8859_1;
有什么区别的吗?我的用后面一种啊!
Top
8 楼ljm983(ljm)回复于 2005-04-05 09:58:22 得分 0
成功了,最后我用的是 jFresH_MaN(TM) 说的改正后就能看见了啊!
太感谢了啊!终于克服了乱吗的问题了啊!
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk
高手谢谢啊!Top
9 楼ljm983(ljm)回复于 2005-04-05 10:03:16 得分 0
不过之前我从MYSQL数据库去数据前用了这个函数啊!
public String getGbk( String str) {
try
{
return new String(str.getBytes("8859_1"));
}
catch (Exception e)
{
return str;
}
}
现在所有读出的数据都变成了乱吗!Top
10 楼007JavaKing(乖乖咙的咚)回复于 2005-04-05 10:08:42 得分 0
写如数据库前一定要转码,确保写进去的是中文。读出来的时候也要转码。Top
11 楼ljm983(ljm)回复于 2005-04-05 10:09:47 得分 0
要加上这个所有取出的数据就不会变乱吗了!
request.setCharacterEncoding("gbk");
Top
12 楼ljm983(ljm)回复于 2005-04-05 10:28:36 得分 0
在标签里面去出数据如果没有request这个参数
怎么又用什么语句转换相当与request.setCharacterEncoding( "gbk ");
的功能呢?Top
13 楼ljm983(ljm)回复于 2005-04-05 10:49:21 得分 0
MYSQL数据库最后的总结:网上的所有解决乱吗的问题我都试过了啊!
最后发现用
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk
存入和取出再也不用什么
request.setCharacterEncoding("gbk");
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
只类的转换了,如果不是很理解这些,可能就会被转晕了啊!
所以觉得MYSQL数据库用gbk是最合适不过了,查询页面的中文也可以正常显示啊
再也不会有同样的一条sql语句在网页上查不出来,而通过查询工具却能查出结果
的编码不同的问题啊! 反正觉得不用把中文字符转到转去就很高兴了啊!Top




