数据库的编码格式
- 查看数据库编码格式:
show variables like '%character%'
- 修改数据库编码格式:
set character_set_database = 'utf8'
- 修改MySQL客户端编码格式:
set names utf8
关于MySQL 5.7 Command Line Client
和MySQL 5.7 Command Line Client - Unicode
个人理解:这是两个不同的MySQL客户端,前者编码格式为latin1
,不支持UTF8编码(即使将编码格式设为utf8
也不行),而后者默认编码格式为utf8
。因此,最好使用后者
例如,前者默认无法显示查询结果中的中文字符(命令行显示乱码),需要将编码格式改为gbk
,而后者默认就能显示中文字符
数据表与字段的编码格式
创建数据表时如果不指定编码格式,那么数据表和字段的默认编码格式均为latin1
- 查看数据表编码格式:
show create table test
修改数据表编码格式的方式有两种:
- 方式一:
alter table test character set utf8
- 方式二:
alter table test convert to character set utf8
对于方式一,该操作仅能修改数据表的编码格式,而不能修改表中字段的编码格式,需要进一步使用alter table
语句
对于方式二,该操作可以同时修改表中字段的编码格式
特别注意:只有字段与表的编码格式不一致时,才会显示字段的编码格式
创建时设置编码格式
综合以上,在创建数据库和数据表时一定要设置合适的编码格式,一般为utf8
- 创建数据库时:在
CREATE
语句后加DEFAULT CHARACTER SET utf8
- 创建数据表时:在字段声明,即圆括号后加
DEFAULT CHARACTER SET utf8
以上均为个人见解,如有谬误,欢迎指正!