详细解答ERROR 1366 (HY000): Incorrect string value-解决方案

首先,这个报错的原因在于字符集编码格式不兼容,不支持插入中文数据,因此我们在用python向数据库进行中文数据插入时,要注意:连接数据库和数据库的编码格式是否都为utf-8

首先,我们在python定义connect时可以在末尾添加一个charset='utf8'

然后我们在数据库中输入

show variables like 'character%'; 查看字符集的设置

可以看到我的数据库中database的字符集并不是utf8,输入

set character_set_database=utf8; 和 set character_set_server=utf8;可以把字符集修改为utf-8

注意:server和database的字符集都得是utf8才可以

到这一步相信大部分人的问题就已经解决了,但是有少部分人(比如我)还是无法解决这个问题,那么此时我们还需要去检查表的字符集和表里面的字段的字符集,输入

SHOW CREATE TABLE dept; 可以查看表格dept的字符集

可以看到表格的字符集并不是utf8,此时输入

ALTER TABLE dept CHARACTER SET utf8; 可以修改字符集格式为utf8

注意看,此时dept中DNAME和LOC的字段字符集也不是utf8,所以还是无法正常插入中文

此时我们有两种选择

[1]将所有字段字符集修改为utf8
   ALTER TABLE dept MODIFY DNAME varchar(14) CHARACTER SET utf8,
   MODIFY LOC varchar(13) CHARACTER SET utf8;
[2]将字段字符集删除,让其默认继承表的字符集
   ALTER TABLE dept MODIFY DNAME varchar(14),
   MODIFY LOC varchar(13);

到此,问题就完美解决了!

出现"ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1"这种情况是因为数据库中的某个字段的字符集不支持插入的字符串。在这个例子中,字符串"\xE5\xBC\xA0\xE4\xB8\x89"无法被正确地插入到'name'列中。引用 这个问题通常是由于数据库的字符集设置与插入数据的字符集不匹配导致的。如果数据库的字符集设置为latin1,而插入的数据包含了其他字符集无法表示的字符,就会出现这个错误。引用 解决这个问题的方法有两种: 1. 修改数据库的字符集和排序规则,使其与插入的数据相匹配。可以使用ALTER DATABASE命令来修改数据库的字符集和排序规则,将其设置为支持插入数据的字符集。引用 2. 修改插入的数据,将其中的特殊字符替换或删除,使其能够被正确地插入到数据库中。可以使用字符串处理函数或正则表达式来替换或删除特殊字符。引用 需要注意的是,在修改数据库字符集或修改插入数据之前,最好先备份数据库以防止数据丢失。同时,还要确保修改后的字符集和排序规则能够正常支持数据库的其他功能和查询操作。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xB0\x8F\xE6\x98\x8E‘ for column ‘name‘ at row ...](https://blog.csdn.net/weixin_42416683/article/details/111570079)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [MySql 错误Incorrect string value for column](https://download.csdn.net/download/weixin_38631331/13694558)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值