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客戶端也可以設置