乱码问题

JSP/Servlet乱码问题

本秂侑毒 提交于 2019-12-01 18:22:15
1、最基本的乱码问题。 这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page contentType="text/html;charset=iso8859-1"%> <html> <head> <title>中文问题</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> </head> <body> 我是个好人 </body> </html> 三个地方的编码。 第一个地方的编码格式为jsp文件的存储格式。MyEclipse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。 第二处编码为解码格式。因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有,缺省是使用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好人”也会出现乱码。存储编码和解码编码格式必须一致才可以。 第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式没有关系。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面

笔记:学习JavaWeb开发第二课

自古美人都是妖i 提交于 2019-12-01 18:22:02
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