JSP+ MySQL中文乱码问题中文乱码问题post提交乱码解决方案提交乱码解决方案
当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相
应中文(姓名的值)乱码
写了两个jsp页面index.jsp和mysql_insert.jsp。数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表单上输入数
据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据库的person_tb中(该表
原有部分数据),然后mysql_insert.jsp再拿出该表中所有数据显示在mysql_insert.jsp页面上。
现在发现,当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相应
中文(姓名的值)乱码,其他数据都显示正常,查看数据库,发现也是相应的含有中文的变量值(姓名的值)乱码。乱码情况
如下图:
index.jsp中第一行有语句:<%@ page contentType="text/html;charset=gb2312"%> ,在浏览器(chrome)中访问此页面时
无乱码(主要指中文乱码,英文乱码现象还没遇见过)。(试过将gb2312换成utf-8,访问后中文乱码)
mysql_insert.jsp中第一行有语句:<%@page language="java" pageEncoding="UTF-8"%>,在浏览器中直接访问此页面时无
乱码。
mysql_insert.jsp页面的代码如下:
复制代码 代码如下:
<%@page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<HTML>
<HEAD>
<TITLE>add message into table </TITLE>
</HEAD>
<BODY>
<%
String id=request.getParameter("id"); //从表单获得
String name=request.getParameter("name"); //从表单获得
String sex=request.getParameter("sex"); //从表单获得
String age=request.getParameter("age"); //从表单获得
try
{
/** 连接数据库参数 **/
String driverName = "com.mysql.jdbc.Driver"; //驱动名称
String DBUser = "root"; //mysql用户名
String DBPasswd = "123456"; //mysql密码
String DBName = "html_db"; //数据库名
String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd;
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(connUrl);
Statement stmt = conn.createStatement();
stmt.executeQuery("SET NAMES UTF8");
String insert_sql = "insert into person_tb values('" + id + "','" + name + "','" + sex + "','" + age + "')";
String query_sql = "select * from person_tb";
try {
stmt.execute(insert_sql);
}catch(Exception e) {
e.printStackTrace();
}
try {
ResultSet rs = stmt.executeQuery(query_sql);
while(rs.next()) {
%>
ID:<%=rs.getString("id")%> </br>
姓名:<%=rs.getString("name")%> </br>
性别:<%=rs.getString("sex")%> </br>
年龄:<%=rs.getString("age")%> </br> </br>
<%
}
}catch(Exception e) {
e.printStackTrace();
}
//rs.close();
评论0
最新资源