在建立数据库和数据表的时候,能够选择对应字符编码方式,如utf8,gbk,gb2312等等。也能够在后面修改表的Collation配置。html
因此数据表的Collation配置必须可以表示表中的中文字符,这是最基本的要求。而后字符必须是使用该Collation兼容的字符集来编码的,这样才能正常显示和被mysql处理。mysql
能够经过以下命令查看字符集变量值:sql
show variables like 'char%'; character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir D:\HwsApacheMaster\mysql\share\charsets\ SHOW VARIABLES LIKE 'collation%'; # Variable_name, Value collation_connection, utf8_general_ci collation_database, utf8_general_ci collation_server, utf8_general_ci
这些变量的含义和做用,参见官方文档解释: Connection Character Sets and Collations。数据库
中文乱码的基本缘由:编码
这三个系统参数的做用:code
故这几个系统参数的值须相同,否则以不一样的编码方式传送数据,若编码方式不兼容,则容易形成乱码的问题。server
客户端经过以下相似命令能够修改上述三个参数的字符集值:htm
set names gb2312;
可是该命令没法修改character_set_server变量的值,所以须要注意是否匹配一致。ci