JSP中将数据存入数据库的时候乱码。将网页的编码方式用GB2312或者UTF-8都是乱码
用的是JDBC的连接方式连接的数据库。具体的代码如下
第一页gengxin.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
request.setCharacterEncoding("GB2312");
%>
<%!public String Bytes(String str) {
try {
String strOld = str;
byte[] strNew = strOld.getBytes("GB2312");
String bytes = new String(strNew);
return bytes;
} catch (Exception e) {
}
return null;
}%>
第三页
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
request.setCharacterEncoding("GB2312");
%>
String strSql = "INSERT INTO product values('" + p_id + "','" + p_type + "','" + p_name + "','"
+ p_price + "','" + p_quantity + "')";
//String strSql = "insert into product(p_id,p_type,p_name,p_price,p_quantity)values(?,?,?,?,?)";
int intTemp = stmt.executeUpdate(strSql);
if (intTemp != 0) {
out.println("<font size=4pt color='red'>" + "商品添加成功!" + "</font>");
} else {
out.println("<font size=4pt color='red'>" + "商品添加失败!" + "</font>");
}
} catch (Exception e) {
out.println(e.toString());
}
%>
request.setCharacterEncoding("utf-8");
page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
编码 GB2312 换成 utf-8
主要注意这几个方面 一个是你工程的编码格式 , jsp的格式,控制层接收过来转换的格式 还有就是数据库字符集的格式 看看那个不对?
Debug 跟着代码走 看哪里代码变成了乱码,再把出错的代码发上来