数据库的编码格式

  • 查看数据库编码格式:show variables like '%character%'
  • 修改数据库编码格式:set character_set_database = 'utf8'
  • 修改MySQL客户端编码格式:set names utf8
关于MySQL 5.7 Command Line ClientMySQL 5.7 Command Line Client - Unicode

个人理解:这是两个不同的MySQL客户端,前者编码格式为latin1,不支持UTF8编码(即使将编码格式设为utf8也不行),而后者默认编码格式为utf8。因此,最好使用后者

例如,前者默认无法显示查询结果中的中文字符(命令行显示乱码),需要将编码格式改为gbk,而后者默认就能显示中文字符

MySQL数据库的字符编码问题
MySQL数据库的字符编码问题

数据表与字段的编码格式

创建数据表时如果不指定编码格式,那么数据表和字段的默认编码格式均为latin1

  • 查看数据表编码格式:show create table test

MySQL数据库的字符编码问题

修改数据表编码格式的方式有两种:

  • 方式一:alter table test character set utf8
  • 方式二:alter table test convert to character set utf8

对于方式一,该操作仅能修改数据表的编码格式,而不能修改表中字段的编码格式,需要进一步使用alter table语句

MySQL数据库的字符编码问题

对于方式二,该操作可以同时修改表中字段的编码格式

MySQL数据库的字符编码问题

MySQL数据库的字符编码问题
特别注意:只有字段与表的编码格式不一致时,才会显示字段的编码格式

创建时设置编码格式

综合以上,在创建数据库和数据表时一定要设置合适的编码格式,一般为utf8

  • 创建数据库时:在CREATE语句后加DEFAULT CHARACTER SET utf8
  • 创建数据表时:在字段声明,即圆括号后加DEFAULT CHARACTER SET utf8

MySQL数据库的字符编码问题
以上均为个人见解,如有谬误,欢迎指正!

相关文章:

  • 2021-06-11
  • 2022-01-04
  • 2021-12-05
  • 2022-12-23
  • 2021-11-30
  • 2021-10-11
猜你喜欢
  • 2021-09-13
  • 2021-10-01
  • 2022-12-23
  • 2021-10-01
相关资源
相似解决方案