为了账号安全,请及时绑定邮箱和手机立即绑定

java中jdbc/sql出现编码问题

java中jdbc/sql出现编码问题

大话西游666 2019-03-14 14:11:55
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column '???è??é“?è??' in 'field list'at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)at ...我其他地方以及传进SQL里面的参数的编码都没有问题,就是执行jdbc中的executeUpdate()方法执行sql插入数据时就出现这个问题。比如:String book_name = request.getParameter("book_name");//中文显示正常String sql = "insert into shopping_car(name,book_name) values("123",book_name)";//编码显示正常,为中文stmt.executeUpdate(sql);//执行该方法的时候就出现上面的乱码错误
查看完整描述

6 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你数据库服务器字符集是啥?在数据库服务器执行以下命令查看一下字符集先:

SHOW VARIABLES LIKE 'CHAR%';

完了将客户端提交的数据的字符集设为和数据库服务器字符集一样...


查看完整回答
反对 回复 2019-04-18
?
慕仙森

TA贡献1827条经验 获得超8个赞

弄好了,原来在原始的jdbc操作中字符串一定要用单引号引起


查看完整回答
反对 回复 2019-04-18
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

建议 MySQL 数据库服务端和客户端都使用UTF-8编码,MySQL 服务端编码和客户端连接URL如何设置,类似如下:

url="jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"

参考:JDBC url for MySQL configuration to use utf8 character encoding


查看完整回答
反对 回复 2019-04-18
  • 6 回答
  • 0 关注
  • 679 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号