- 注
以下操作都是以test数据库,account表及其字段username为例
一、数据库编码
1.1 查看数据库编码
use test
,选定数据库test之后,执行以下命令查看当前数据库的编码:
show variables like 'character_set_database';
1.2 修改数据库编码
修改test数据库编码为utf8:
alter database test character set utf8;
二、表编码
2.1 查看表编码
查看建表语句,就能得到表的编码信息:
show create table account;
CREATE TABLE `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`balance` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
例如从以上建表语句看出表的编码使用的是latin1
2.2 修改表编码
修改account表,使用utf8编码:
alter table account character set utf8;
三、表字段编码
3.1 查看表字段的编码
同样,在建表语句中可以得到该信息:
show create table account;
CREATE TABLE `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) CHARACTER SET latin1 DEFAULT NULL, 此处可以看到username字段的编码使用的是latin1
`balance` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
3.2 修改字段编码
将username字段修改使用utf8编码:
alter table test change username username varchar(20) character set utf8;
插入中文字符出现问题,有可能是字段的编码使用不正确造成的,参考以下文章:
https://blog.csdn.net/ch717828/article/details/41357431/