查看当前mysql数据库的所有属性的字符编码:
character-set-client:设置客户端使用的字符集。
character-set-connect:设置链接数据库时的字符集。
character-set-result:服务器安装时指定的编码格式。
对于 character-set-client
、character-set-connect
、 character-set-result
在mysql服务器中的处理过程如下图:
从上图我们可以发现,如果 客户端
的字符集与 character-set-client
的字符集不一致,必出错;如果 character-set-connect
的字符集与对应的表中的 字段
的字符集不一致,必出错;如果 character-set-result
的字符集与 客户端
的字符集不一致,并出错。
character-set-database:设置创建数据库的编码格式。
字符集的优先级:字段的字符集 > 表的字符集 > 数据库的字符集 > mysql服务的字符集。
当用户只设置了server的字符集,那么数据库、表、字段的字符集将跟随server的字符集;当用户只设置了server、数据库的字符集,那么表、字段的字符集将跟随数据库的字符集;当只设置了server、数据库、表的字符集,那么字段的字符集将跟随表的字符集。
character-set-server:数据库给客户端返回数据时的编码格式。
character_set_filesystem:文件系统的编码格式。
character_set_system:数据库系统使用的编码格式。
character_sets_dir:服务器安装时指定的编码格式。