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客户端也可以设置

 

 

 

posted @ 2020-09-15 15:57  HuaBro  阅读(1269)  评论(0编辑  收藏  举报