1.查看编码html
#显示全部编码和字符校对的参数
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
总共有如下这些项:mysql
Variable_name | Value |
---|---|
character_set_client | utf8mb4 |
character_set_connection | utf8mb4 |
character_set_database | utf8mb4 |
character_set_filesystem | binary |
character_set_results | utf8mb4 |
character_set_server | utf8mb4 |
character_set_system | utf8 |
collation_connection | utf8mb4_unicode_ci |
collation_database | utf8mb4_unicode_ci |
collation_server | utf8mb4_unicode_ci |
1、character_set_client
主要用来设置客户端使用的字符集。
2、character_set_connection
主要用来设置链接数据库时的字符集,若是程序中没有指明链接数据库使用的字符集类型则按照这个字符集设置。
3、character_set_database
主要用来设置默认建立数据库的编码格式,若是在建立数据库时没有设置编码格式,就按照这个格式设置。
4、character_set_filesystem
文件系统的编码格式,把操做系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不作任何转换的。
5、character_set_results
数据库给客户端返回时使用的编码格式,若是没有指明,使用服务器默认的编码格式。
6、character_set_server
服务器安装时指定的默认编码格式,这个变量建议由系统本身管理,不要人为定义。
7、character_set_system
数据库系统使用的编码格式,这个值一直是utf8,不须要设置,它是为存储系统元数据的编码格式。
8、character_sets_dir
这个变量是字符集安装的目录。
咱们只关注下列变量是否符合咱们的要求
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
下列三个系统变量咱们不须要关心,不会影响乱码等问题
character_set_filesystem
character_set_system
character_sets_dirweb
修改my.cnf文件。加入如下内容,而后重启数据库:systemctl restart mysqld
sql
[mysqld]
character-set-server=utf8mb4 [mysql] default-character-set=utf8mb4 [client] default-character-set=utf8mb4
以上方式更改编码对于已有的库和表是不产生影响的,须要咱们单独进行转换。
数据库
#更改数据库编码:
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#更改表编码:
ALTER TABLE 表名CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
若有必要,还能够更改列的编码