| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
测试语句是插入一个中文字符“你”,其utf8编码为"0xE4 0xBD 0xA0",
1. latin1发送包

思考一下1:为什么客户端和连接都设置了latin1,但最终发送的是正确的utf8编码呢?
2. latin1接收包

思考一下2:为什么接收到的还是正确的utf8编码?
3. latin1不显示乱码

思考一下3:为什么latin1显示了正确的utf8字符?
4. utf8接收包

思考一下4:为什么连接的字符集和数据库的字符集设置成一样了,接收的数据反而不是utf8了?(请与latin1接收数据包对比)
5. utf8显示包

思考一下5:为什么连接的字符集和数据库的字符集设置成一样了,显示反而乱码了?
怎么样,上面的思考题是否都有答案了,如果没有,相信下面这幅图能够帮助你:










