码迷,mamicode.com
首页 > 编程语言 > 详细

笔记:学习JavaWeb开发第二课

时间:2015-11-04 00:49:36      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

1. 中文返回前台页面会出现乱码

如果只在Servlet中设置上面的语句,则会出现如下情况(动态内容为乱码,静态内容正常)

req.setCharacterEncoding("utf-8");

技术分享

所以在前台页面中也指定一下编码

<%@ page contentType="text/html;charset=UTF-8" language="java"%>

这样前台页面就能显示正常了


2. 数据库查询中文乱码

数据库连接方式

private final String conn_url = "jdbc:mysql://localhost:3306/weixinmybatis";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(conn_url, "root", "root");

在使用PreparedStatement的setString(int, String)方法的时候,String如果是中文,就会变成?,导致查询失败

StringBuilder sql = new StringBuilder("select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE where 1=1");
sql.append("and COMMAND=?");
PreparedStatement ps = conn.prepareStatement(sql.toString());
ps.setString(1, "中文");

生成的查询语句就变成了

select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE where 1=1 and COMMAND=‘??‘

最终解决方案是在连接数据库的时候设置编码,即在conn_url中添加编码

private final String conn_url = "jdbc:mysql://localhost:3306/weixinmybatis?characterEncoding=utf8";


笔记:学习JavaWeb开发第二课

标签:

原文地址:http://my.oschina.net/lovewxm/blog/525553

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!