今天,使用mysql workbench 给一张表添加了一列varchar类型的列。在插入中文数据时出现
这是编码问题,只要将表的类型修改为utf-8就ok了。
alter table 数据库名.表名 convert to character set utf8;
执行完这条语句之后就可以插入中文数据啦。
如果多张表存在这个问题可以直接修改数据库的编码类型
alter database 数据名 character set utf8;
如果想在创建数据库时就解决这个问题可以在建表时加
ENGIN
第一步:
通过CMD窗口连接数据库,
show databases;
use test(换成你的数据库名称);
第二步:
输入show variable like ‘%char%’; ,查看数据库默认字符编码。
可以看到除了第四个,其它都是utf8(如果你的不是这样也没关系,下面的步骤将会统一改成),如下图
第三步:
输入select * from t_items(注意换成你的表名); ,查看表单里的中文是否正常。如下图,出现中文乱码问题
第四步:
更改数据库字符编码,输入一下命令:
set
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,’张三’,’female’,’1995-10-08′,’2015-11-12′,’Sales’,2000,’是个好员工!’); 出现乱码时,可以使用语句 show variables like ‘character%’; 来查看当前数据库的相关编码集。
从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、result
MySQL中文乱码解决办法
前言:
MySQL是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
1、中文乱码
1.1、中文乱码
create table user(name varchar(11)); # 创建user表
insert into table user(carl); # 添加数据
select * from user;
insert into user val
Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节。
因此会导致带有表情的昵称插入数据库时出错。
只要修改MySQL的编码即可,解决方案如下:
1.在mysql的安装目录下找到my.ini,作如下修改:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
2 重启mysql服务
3 修改表
ALTER TABLE 表名 CONVERT TO CHARACTER S