有时候,在Mysql数据库中会经常遇到乱码的问题,现在普遍的做法就是全部强行把编码格式都设置成utf8模式,就可以解决这个问题,以前是知其然,不知其所以然,今天我就稍微研究了下Mysql的字符集。
就拿我刚用二进制模式刚装的Mysql5.6来说,查看一下字符集是这样。
character_set_client:客户端请求数据的字符集 character_set_connection:客户机/服务器连接的字符集 character_set_database:默认数据库的字符集, 如果没有指定,那就使用 character_set_server指定的字符集。 character_set_filesystem:把os上文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的 character_set_results:结果集,返回给客户端的字符集 character_set_server:Mysql Server的默认字符集 character_set_system:系统字符集,这个值总是utf8,不需要设置。这个字符集用于数据库对象(如表和列)的名字,也用于存储在目录表中的函数的名字。
1.看到这里,对 character_set_database和character_set_server理解可能有点混乱。假如想修改