MySql教程

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

本文主要是介绍Qt 使用mysql驱动获取中文乱码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

这篇关于Qt 使用mysql驱动获取中文乱码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!