Mysql 插入中文錯誤:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1


 

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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM