Qt 使用mysql驱动获取中文乱码

问题:
1.我数据库是按照utf8去存的;
2.我开发环境编码也都是utf8;
3.读取出来的中文无论何种当时解码均是乱码。
思考:
1.不管数据库以怎么样编码方式存储,他的数据应该就是个二进制数据(计算机世界里一切皆二进制),但是我用qt读过来的值无论怎么解码这个二进制,他都好像不是原来中文。也就是说我拿到的二进制已经变了。我猜想应该是数据库驱动在拿数据的时候多此一举,将数据按照他以为的方式解码了再给使用者,于是造成了这个现象。
尝试解决:
在数据库调用open函数成功后
database.exec(“SET NAMES ‘latin1’”);
拿到原有数据,再用utf8解码其二进制数据!
嘿,果然中文显示了!
总结:字符串编解码问题,永远会存在,勇敢面对咯!

上一篇:【MySQL】关于MySQL中的字符集?


下一篇:C#模拟POST表单提交 --- WebClient