When MySQLdb performs an insert operation in Python

Python connection SQL error: 1366, "Incorrect string value: '\xF0\x9F\x98\x81'

Description of the problem:
An error occurs when performing data insertion after connecting to MySQL

Change the encoding format .
Database, table, and column encoding formats all need to be changed.

—————————————————————————–

- Modify database encoding

  1. Revise

    ALTER DATABASE database_name CHARACTER SET utf8;

  2. Specify database character encoding when creating database

    CREATE DATABASE database_name CHARACTER SET utf8; 

—————————————————————————–

- Modify table encoding

 ALTER TABLE  `table_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
  • COLLATE: 数据库校对规则——utf8_general_ci 大小写不敏感;utf8_general_ci` is case sensitive.

- Create table and specify table encoding and column encoding

CREATE TABLE table_name ( 
id int(10) unsigned NOT NULL auto_increment, 
column1         enum('Y','N')        character set utf8      NOT NULL default 'N', 
column2         int(5)                                       NOT NULL default '0', 
column3         varchar(50)          character set utf8      NOT NULL default '', 
PRIMARY KEY (id) 
)  DEFAULT CHARSET=utf8; 

—————————————————————————–

- Modify column encoding

ALTER TABLE  `table_name` CHANGE  `column_name`  `column_name` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325735621&siteId=291194637