最主要有3点:

1,set character_set_client:客户端来源数据使用的字符集;

2,set character_set_connection:连接层字符集;

3,set character_set_results:查询结果字符集。

流程:character_set_client的字符集设置为gbk/utf8,character_set_connection的字符集设置为gbk/utf8,服务器中数据库的字符集设置为gbk/utf8,character_set_results的字符集设置为gbk/utf8,则不会出现乱码,最主要character_set_client和character_set_results的设置要一致,要么都是gbk,要么都是utf8,连接层的字符集character_set_connection会接收客户端的来源数据并转换为服务器对应的字符集存储数据,一般数据库的字符集都设置为utf8(utf8位最大的字符集)。如果数据库的字符集为latin1,而连接层传过来的字符集是utf8则会出现乱码。