我已经把mysql得配置文件里的客户端编码和服务器端编码都改成了gbk可还是出现乱码,但是把客户端得编码改成latin1就可以在mysql Client里插入中文,但是在jsp中却不可以向mysql中插入中文。从网上找了好多解决办法,但是那个都不适于我啊 !我得JSP程序
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html; charset=gbk" %>
<html>
<head>
<title>使用JSP连接MySQL数据库案例测试</title>
</head>
<body>
<%
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("com.mysql.jdbc.Driver");
String dbUrl ="jdbc:mysql://localhost:3306/person?user=root&password=123&useUnicode=true&characterEncoding=gbk";
con= DriverManager.getConnection(dbUrl);
stmt = con.createStatement();
//stmt.executeUpdate("insert into note values (null,'sadf','dsffd','ddffd')");
stmt.executeUpdate("insert into note values (null,'垃圾','菜鸟','狗屎')");
//关闭数据库连接
stmt.close();
con.close();
%>
</body>
</html>错误信息javax.servlet.ServletException: Data truncation: Data too long for column 'title' at row 1
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.zhongwen_jsp._jspService(zhongwen_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root causecom.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'title' at row 1
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3374)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537)
com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
org.apache.jsp.zhongwen_jsp._jspService(zhongwen_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我的mysql配置文档[client]port=3306[mysql]#default-character-set=latin1
default-character-set=gbk
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gbk
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
帮帮忙
谢谢了
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html; charset=gbk" %>
<html>
<head>
<title>使用JSP连接MySQL数据库案例测试</title>
</head>
<body>
<%
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("com.mysql.jdbc.Driver");
String dbUrl ="jdbc:mysql://localhost:3306/person?user=root&password=123&useUnicode=true&characterEncoding=gbk";
con= DriverManager.getConnection(dbUrl);
stmt = con.createStatement();
//stmt.executeUpdate("insert into note values (null,'sadf','dsffd','ddffd')");
stmt.executeUpdate("insert into note values (null,'垃圾','菜鸟','狗屎')");
//关闭数据库连接
stmt.close();
con.close();
%>
</body>
</html>错误信息javax.servlet.ServletException: Data truncation: Data too long for column 'title' at row 1
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.zhongwen_jsp._jspService(zhongwen_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root causecom.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'title' at row 1
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3374)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537)
com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
org.apache.jsp.zhongwen_jsp._jspService(zhongwen_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我的mysql配置文档[client]port=3306[mysql]#default-character-set=latin1
default-character-set=gbk
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gbk
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
帮帮忙
谢谢了
解决方案 »
- 关于dwr不同浏览器的问题
- 急急急!!!spring中配置AOP问题
- 有代码能阻止浏览器刷屏吗
- 如何把服务器端输出的二进制流在网页上显示出来(有可能是文本,图片,视频
- 如何能将IE收藏夹里的网址导出?
- 现在有一大堆框架,谁能告诉我???
- 怎样才能在Tomcat中装SQLServer 2000的JDBC驱动?
- 怎样extends同一个包下面类?
- 有谁用jsp+mysql做过的,读数据时报错:can't open file rev.MYD!!为什么会这样!!
- log4j 每个类都要写private Logger logger = Logger.getLogger(类名吗
- <FORM action="YFbianhaoDelAction?chukudanhao=${row.chukudanhao}" >怎样接收chukudanhao
- servlet找不到JAVAX类,已经把TOMCAT中的servlet类配到CLASSPATH类
也许有帮助
应该设置成utf-8并且在建立database的时候指定编码
你要转换编码
new String("中文".getBytes(),"iso8859_1");
大概是这样
alter database `bookstore`
character set utf8
default character set utf8
collate utf8 general ci
default collate utf8_general_ci;
我是在修改数据库编码的时候出现这种问题的,问题详情如下:
Script line: 1 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alter database `bookstore`
character set utf8
default character set utf8
coll' at line 2
我想请问一下是何原因?
谢谢了!各位大虾!