在mysql所建立的表中插入中文数据出现错误,

报错Incorrect string value:  '\xE6\x89\x8B\xE6\x9C\xBA'  for column   'cname'  at  row 1;

解决mysql编码格式问题

错误原因是在字段'cname'字段插入中文数据,因为建表时没有注明编码格式,则默认使用mysql默认编码latin1(瑞典)

这时为了在表中出入中文数据,需要更改mysql编码格式。

 

首先我们在mysql安装目录下找到my_default.ini配置文件,将其复制一份重命名为my.ini,在其中加入以下配置

[client]
default-character-set = utf8

[mysqld]

default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci

 

client是mysql客户端编码格式设置,这里把所有编码格式变为utf8.

尽管把mysql编码格式改了,以前已经创建的数据库、表以及表中字段使用的编码还是latin1

这里可以使用show create database | table  database_name/table_name查看数据库及表格创建时的编码格式

解决mysql编码格式问题

这时我们要修改以前创建数据库表时用的默认编码:

修改数据库的编码格式

alter database buybackshop(数据库名) character set utf8;

修改表的编码格式

alter table category(表名) character set utf8;

修改表字段的编码格式

alter table category(表名) modify cname(表中字段名) varchar(50) character set utf8;

 

通过这几条命令可以把以前已经创建的数据库、表、字段编码格式更改。

一般避免出现编码问题,创建数据库以及表的时候,写sql语句都会加上编码格式的设置

如:

解决mysql编码格式问题

 

 

相关文章:

  • 2022-01-07
  • 2021-10-13
  • 2021-05-17
  • 2022-01-30
  • 2022-12-23
  • 2021-09-15
  • 2021-06-22
猜你喜欢
  • 2021-07-09
  • 2022-12-23
  • 2021-04-27
  • 2022-12-23
  • 2022-02-26
  • 2022-12-23
  • 2021-08-24
相关资源
相似解决方案