在myeclipse后台中读取到中文,但是mysql数据库中却是一堆问号

在myeclipse后台中可以读取到中文,但是mysql数据库中却是一堆问号,mysql中的数据库字符集是utf8 -- UTF-8 Unicode
求教高人,看了很多解决乱码的方法,但是都试过了,都不行。
分数不高 已是倾我之所有,希望高人帮我,不胜感激!

我是使用MVC模式开发的 在addBlog.jsp页面接收参数并提交给BlogServlet进行处理,BlogServlet调用BlogBeanCk的addBlog方法 然后进行处理

addBlog.jsp页面(字符编码UTF-8)
<form method="post" action="BlogServlet">
<table width="720" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" align="center">请输入博客内容</td>
</tr>
<tr>
<td>主题:</td>
<td>
<input name="title" type="text" size="60" />
</td>
</tr>
<tr>
<td>分类:</td>
<td>
<select name="category" id="select">
<option value="1">精彩转载</option>
<option value="2">心情日记</option>
</select>
</td>
</tr>
<tr>
<td>内容:</td>
<td>
<textarea name="content" cols="75" rows="15"></textarea>
</td>
</tr>
<tr>
<td>
<input type="reset" name="reset" value="重 置" />
</td>
<td><input type="submit" name="submit" value="提 交" /></td>
</tr>
</table>
</form>

BlogServlet中的doPost方法
request.setCharacterEncoding("UTF-8");

//接收addblog.jsp页面的参数
String categoryId=request.getParameter("category");
String title=request.getParameter("title");
String content=request.getParameter("content");

//后台读取
System.out.println(categoryId);
System.out.println(title);
System.out.println(content);

//调用BlogBeanCk的方法
BlogBeanCk bbc=new BlogBeanCk();
if(bbc.addBlog(categoryId, title, content)){
//添加成功 跳转到成功的页面
request.getRequestDispatcher("suc.jsp").forward(request, response);
}else{
//反之 跳转到失败的页面
request.getRequestDispatcher("err.jsp").forward(request, response);
}

BlogBeanCk里面的addBlog方法
public boolean addBlog(String categoryId,String title,String content){
boolean b=false;
try {
//数据库连接
ct=new ConnDB().getConn();
String sql="insert into blog (category_id,title,content,created_time) values(?,?,?,now())";
ps=ct.prepareStatement(sql);
ps.setString(1, categoryId);
ps.setString(2, title);
ps.setString(3, content);
int i=ps.executeUpdate();
if(i==1){
//添加成功
b=true;

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
//关闭资源的方法
this.close();
}
return b;
}
哈哈 自己解决了 解决方案:http://hanxin830311.javaeye.com/blog/273080
二楼的说对了一点 就给你分把 谢谢各位出谋划策

应该不关代码的事,估计是你的mysql管理器(如 EMS SQL Manager 2005 for MySQL)的编码设置有问题,把客户端的编码设置成GBK试试,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-25
String content=request.getParameter("content");
你在进行中文接收的时候这样接收到的应该就直接是乱码了
并不是你在往数据库里边写时候成乱码的
String content = new String( request.getParameter("content").getBytes("ISO8859-1"),"GBK");
这样才能保证你获取到的是中文的
第2个回答  2010-05-25
我的在数据库是中文,取出来就是乱码了。和你的情况有点类似,也试了很多方法了,在别人机子上是好的就在我机子上不行,怀疑是MyEclipse的编码设置问题,没有解决,期盼能在这里得到启发和解答。
相似回答