1、问题引出
客户端应用程序查询数据库数据,显示乱码,如何解决?
2、解决方案
一般来说,可以下面几个方面进行排查:
1)首先要明确客户端使用何种编码格式,这是最重要的(IE6一般使用utf8,命令行一般是gbk,程序一般时gb2312)。
2)确保你的数据库使用utf8格式,所有编码通吃。
3)一定要保证connection字符集大于等于client字符集,不然就会信息丢失。
比如:latin1 < gb2312 < gbk < utf8;
若设置set character_set_client=gb2312,那么至少connection的字符集要大于等于gb2312,否则就会丢失数据。
4)以上3步做正确的话,那么所有中文都被正确的转换成utf8格式存储进了数据库,为了应用不同的浏览器,不同的客户端,我们可以修改character_set-results来以不同的编码显示中文字体。
由于utf8是大方向,因此Web应用还是比较倾向于utf8格式显示中文。