日期:2014-05-18  浏览次数:20713 次

关于乱码的问题
我做个留言板管理程序 发现一个问题 在表单里填好数据后插入数据库的都是乱码 
后来想到用DriverManager.getConnection("jdbc:mysql://localhost:3306/sample_dbuser=dazern&password=5201314&useUnicode=true&characterEncoding=GBK")
发现没有效果 后来又用到:
Request.setCharacterEncoding(“gbk”);才行。
后来我又试了另一种方法,在<head></head>中加入
<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 发现也能正常插入。
请那位高人能否详细讲解下吗?

随后发现另外一个问题: 我又在留言列表页做了改动,加入一个关键字查询表单,输入关键字后查询到有关键字的留言显示出来。这次是往本页发出请求。我用的是<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 发现没效果 出现乱码
要用Request.setCharacterEncoding(“gbk”);才行。
请问:这又是怎么一回事?
[align=left][/align]

------解决方案--------------------
你在插入数据库前,首先要确保你插入的数据是正确的中文。
Request.setCharacterEncoding(“gbk”);是一个局部转码的方法,将原来ISO-8859-1的格式转成GBK的。
但是这个方法并不是绝对的,也可以通过new String(str.getBytes("ISO-8859-1"),"gb2312")来进行转码。
至于jdbc:mysql://localhost:3306/sample_dbuser=dazern&password=5201314&useUnicode=true&characterEncoding=GBK") 
这个是将连接的编码方式转换成GBK的格式。
------解决方案--------------------
你的页面与数据库中编码要一致
------解决方案--------------------
把你的网页工具栏——查看——编码 这一项选择成为 
Unicode(UTF-8) 

或者将你的代码改为charset=gb2312 

<%@ page contentType="text/html;charset=gb2312"%>
------解决方案--------------------
加个过滤器!!!

arg0.setCharacterEncoding("GBK");(request)
arg1.setCharacterEncoding("GBK");(response)

两句话对付留言板还是可以的!

看看大家还有什么好的方法没!
------解决方案--------------------
同意过滤器,支持用“UTF-8”