出错信息:Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column 'username'

出错信息


java.sql.SQLException: Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column 'username' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2109)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2077)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2362)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2280)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2265)
at com.amaker.dao.impl.UserDaoImpl.register(UserDaoImpl.java:46)
at com.amaker.test.UserDaoImplTest.testRegister(UserDaoImplTest.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

分析原因:编码不一致导致

解决方案

(如果你用的是java编程访问数据库,前提是java编码也要和数据库编码一致)

1.检查数据库编码与表的编码是否一致,发现数据库编码utf8,校对规则为utf8_unicode_ci,而表的编码为latin1,校对规则为Latin1_general_ci,

修改表的编码和校对规则,使其与数据库一致,这个可以在更改表里面的高级属性部分修改,重启数据库后,再次插入中文数据,还是出现问号;

2、导出表结构,从sql语句中发现字段编码依然是latin1,

修改字段编码,执行以下sql语句如下:

ALTER TABLE `user` CHANGE `username` `username` VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL;
ALTER TABLE `user` CHANGE `password` `password` VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL;

最后重启数据库,中文数据插入数据库,问题解决。

转载于:https://www.cnblogs.com/XiaoyangBoke/p/3587440.html

这个错误代码1366 (HY000)是指在插入数据时,字符的值不符合列的字符类型要求,导致出现错误。具体来说,对于你提供的错误代码的例子,错误信息是:Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1。这表示在'name'列中,插入的字符串值'\xE5\xBC\xA0\xE4\xB8\x89'不符合字符类型的要求。要解决这个问题,你可以按照以下步骤进行操作: 1. 首先,确认你所创建的数据库的字符类型。你可以使用命令`show create database school;`来查看数据库的字符类型。默认情况下,数据库的字符类型可能是阿拉伯文,所以如果你输入中文字符,就会报错。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xBC\xA0\xE8\x80\x81...‘ for column ‘name‘ at ...](https://blog.csdn.net/PEABRAIND/article/details/124349459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [[Err] 1366 - Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89‘ for column ‘name‘ at row 1](https://blog.csdn.net/ChenYanQing666/article/details/124366888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值