摘要:本文主要是解决mysql插入中文异常:ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xB0\x8F\xE6\x98\x8E‘ for column ‘****’ at row 1
一、问题原因:
你现在数据库表的编码是Latin1,无法插入汉字。也就是说你在建表的时候没有指定字符集utf-8或者GBK。如果你用的是navicat,可以如下图所示看出问题原因。
二、解决办法:Navicat中修改MySQL的编码格式
1、打开 Navicat for MySQL 并连接到您的数据库服务器。
2、在左侧的连接列表中,展开数据库,然后展开要更改字符集的表。
3、选中要更改字符集的表,右键点击并选择 “设计表”。
4、在 “设计表” 窗口中,您将看到表的列列表。
5、选择要更改字符集的列,然后在右侧的属性面板中找到 “字符集” 选项。
6、点击 “字符集” 下拉菜单,并选择 “utf8”。
7、点击 “保存” 按钮,保存更改。
8、重复步骤 5-7,将所有需要更改字符集的列都设置为 “utf8”。
9、关闭 “设计表” 窗口。
其实上边的9步完成后,出问题的这张表已经可以正常插入了,但是最好把数据库也改成utf8编码,因为你以后再建表就不用单独设置了。继续下边步骤。
10、在导航栏中选择“新建查询 ”。或者在导航栏点击"工具",然后选择 “SQL编辑器”。
11、在 SQL 编辑器中,输入以下 SQL 语句:
将 database_name 替换为您的数据库名称。
ALTER DATABASE exercise_db CHARACTER SET utf8 COLLATE utf8_general_ci;
12、点击 “执行” 按钮来执行 SQL 语句。
该数据库字符编码,也可以在数据库上右键,“编辑数据库”,字符集改成utf-8即可,排序规则不用选保存自动确认。
完成上述步骤后,数据库及其相关表和列的字符集将更改为 utf8。
参考链接:点击跳转