MySQL出现[Err] 1366 - Incorrect string value: '\xE5\x8D\x8E\xE5\xB8\x88' for column 'uaddr' at row 1

本文介绍了解决Navicat for MySQL导入数据库文件时出现的错误[Err]1366-Incorrect string value的问题。提供了两种解决方案:一是更改SQL文件的编码格式为UTF-8;二是直接选择正确的文件编码格式进行导入。

向Navicat for MySQL中导入数据库文件时出现:

[Err] 1366 - Incorrect string value: '\xE5\x8D\x8E\xE5\xB8\x88' for column 'uaddr' at row 1

...

...unsuccessfully

原因:你导入的SQL文件编码有问题不是utf-8格式的

解决方法:

方法1.按照网上的好多解决方案是将导入的数据库编码格式改成utf-8格式。

更改方法:

1.在记事本和notepad++上都可以更改。

拿notepad++为例:

编码--转为UTF-8编码格式--保存,然后重新导入,我尝试了好几次,都没有成功。


其他更改编码方法:

在MySQL中更改、在SQL server中更改等方案,都比较麻烦,专业人士的操作,个人认为不实用。

方法2:查看你的SQL文件的编码格式,然后在导入文件时选中相应的编码就行了。


比如我的SQL文件中查看到 CHARSET=gbk,表明我的SQL文件编码格式为GBK,导入文件时在编码中找到相应的编码(Simplified Chinese GBK),开始即可,能看到信息日志中出现successfully,此时数据库中的表都正常出现了,表明数据库导入成功。


个人认为这是一种更方便快捷的方式。

希望能帮到你。

MySQL 导入数据时出现 `[ERR] 1366 - Incorrect string value: '湖南...' for column 'didian' at row 1` 错误,通常是由于字符编码不匹配导致的。以下是几种可能的解决办法: ### 修改表的字符集 可以将表的字符集修改为支持目标字符的字符集,如 `utf8mb4`。示例 SQL 如下: ```sql ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 其中 `your_table_name` 是出现问题的表名。这样可以确保表中的列能够存储各种字符。 ### 修改数据库的字符集 若表所在的数据库字符集不支持要导入的字符,可修改数据库的字符集。示例 SQL 如下: ```sql ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ``` 这里 `your_database_name` 是数据库名。修改后,后续创建的表默认会使用该字符集。 ### 导入时指定字符集 在使用 `LOAD DATA INFILE` 导入数据时,指定字符集为 `utf8mb4`。示例 SQL 如下: ```sql LOAD DATA INFILE 'your_file_path' INTO TABLE your_table_name CHARACTER SET utf8mb4 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; ``` `your_file_path` 是要导入的数据文件路径,`your_table_name` 是目标表名。 ### 检查客户端连接字符集 确保客户端连接到 MySQL 服务器时使用的字符集为 `utf8mb4`。在连接 MySQL 时可以使用以下命令: ```sql SET NAMES utf8mb4; ``` 或者在连接参数中指定字符集,例如在 Python 中使用 `mysql-connector-python` 连接时: ```python import mysql.connector mydb = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="your_database", charset="utf8mb4" ) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值