Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。
一开始修改 修改数据库的编码
1.数据库查看数据各字符编码:show variables like '%char%';
2.查看文本文档字符编码是否和数据库字符编码一致(以utf8为例,必须保证一致性)。
(插入中文到数据库)
1.查看数据各字符编码:show variables like '%char%';
2.执行set names gbk;把三个回话系统变量character_set_client、character_set_connection和character_set_results设置为给定字符集。
3.如果数据库不是gbk编码,执行alter database mysqltestdb character set gbk;设置当前的数据库编码为gbk即可。
-----------------------------------------------------------------------------------
实现编码设置的两种方法:
(1)动态设置
创建数据库:
CREATE DATABASE PyDB
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
选择此数据库:
USE PyDB;
创建表:
CREATE TABLE PyTable (
username VARCHAR(10),
useraddr VARCHAR(10)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)改变默认编码
在mysql下,先执行命令:SHOW variables LIKE '%char%';
查看数据库默认编码是latin1。
以root身份更改mysql的配置文件
在/etc/my.cnf 或 /etc/mysql/my.cnf 添加以下指令并保存:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然后重启mysql:service mysql restart
再次查看:SHOW variables LIKE '%char%';
可以看到编码已经是UTF8。
-------------------------------------------------------
或者
https://blog.csdn.net/ch717828/article/details/41357431/
-------------------------------------------------------
CHARACTER SET 'utf8mb4'
COLLATE 'utf8mb4_0900_ai_ci'
navicat客户端也可以设置