JSP+MySQL中文乱码问题不完全解决方案

发表于: java/j2ee | 作者: darkmi | 日期: 2011/06/29 08:00
字号:

总结了一下jsp程序出现乱码后需要重点检查的几个关键点。

1、检查JSP页面的pageEncoding是否设置为pageEncoding=“GBK”

2、检查META元素的charset是否设置为GBK:

<meta http-equiv="content-type" content="text/html; charset=GBK">

3、从Request中获得参数的时候是否转码:

request.setCharacterEncoding("GBK");

如果Request没有用以上语句设置字符编码的话,request.getCharacterEncoding()的返回值为null

4、返回数据库连接的时候同时也需要指定字符编码:

DriverManager.getConnection("jdbc:mysql://localhost:3306/messagebox?user=root&password=1234&characterEncoding=GBK");

5、创建数据库表的时候也要指定编码格式:

ENGINE=MyISAM DEFAULT CHARSET=gbk

以上步骤基本可以解决JSP+MySQL的中文字符编码问题。

include包含文件的乱码问题

header.html文件内容如下:

<div id="header">
<h1>极简留言版</h1>
</div>

该文件被包含到index.jsp文件中,当该index.jsp文件被编译成的Java代码即为乱码:

out.write("<div id=\"header\">\r\n");
out.write("<h1>¼«¼òÁôÑÔ°æ</h1>\r\n");
out.write("</div>\r\n");

给header.html文件加上如下的JSP编译指令:

<%@ page pageEncoding="GBK"%>
<div id="header">
<h1>极简留言版</h1>
</div>

乱码问题解决!

html文件中加入JSP编译指令没有任何问题,因为include编译指令指定的文件中的任何JSP语句都会被解析。

切换主题切换主题
返回顶部