在jsp中向mysql中插入中文数据时提示错误:java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'Stu_name' at row 1以下是我的代码,希望大侠帮忙指出原因,谢谢。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%!
String tbl="";
%>
<%
Connection con;
Statement stmt;
ResultSet rs;

try
{
Class.forName("com.mysql.jdbc.Driver");
String dburl="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
con=DriverManager.getConnection(dburl,"root","sa" );
stmt=con.createStatement();
int i=stmt.executeUpdate("insert into t_student(id,stu_name,stuno) values (3,'张三','88')");


}
catch(Exception e)
{

}
%></body>
</html>

解决方案 »

  1.   

    进入MySQL的安装目录找到My.ini把default-character-set更改成GBK,然后重启服务
      

  2.   

    1楼说的有道理,MySql默认编码为Ascii,要改变编码为UTF-8才行。
      

  3.   

    看看你设计表中的'Stu_name' 为什么编码格式,多尝试几种看看,一般我们用gbk或者gb2312
      

  4.   

    把my.ini中的字符都改成gbk,([client]中的default-character-set,[mysqld]中的default-character-set)然后把MYSQL的服务关掉,重新启动,还有可以用show variables like 'character_set_%'来查看MYSQL的编码方式,最后用set character_set_connection=gbk这样的语句来全部改成GBK
      

  5.   

    把UTF-8全部改成GBK看看,改成统一编码格式。
      

  6.   

    是你单个数据表的编码方式错误,估计是Latin-1
    你可以用命令查一下。
    方法一,重新安装数据库,再次安装的时候注意编码方式选择utf-8
    方法二,ALTER TABLE `xxx` DEFAULT CHARACTER SET utf8 忘了命令到底行不行,楼主自己找找看吧!