问题:
1.我数据库是按照utf8去存的;
2.我开发环境编码也都是utf8;
3.读取出来的中文无论何种当时解码均是乱码。
思考:
1.不管数据库以怎么样编码方式存储,他的数据应该就是个二进制数据(计算机世界里一切皆二进制),但是我用qt读过来的值无论怎么解码这个二进制,他都好像不是原来中文。也就是说我拿到的二进制已经变了。我猜想应该是数据库驱动在拿数据的时候多此一举,将数据按照他以为的方式解码了再给使用者,于是造成了这个现象。
尝试解决:
在数据库调用open函数成功后
database.exec(“SET NAMES ‘latin1’”);
拿到原有数据,再用utf8解码其二进制数据!
嘿,果然中文显示了!
总结:字符串编解码问题,永远会存在,勇敢面对咯!
相关文章
- 08-15Qt 使用mysql驱动获取中文乱码
- 08-15windows命令行下 使用Mysql 无法插入中文字符或中文乱码问题
- 08-15Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
- 08-15使用java连接MySql,中文乱码解决的方法
- 08-15mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 08-15Dapper操作MySQL数据库获取JSON数据中文乱码
- 08-15QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)
- 08-15两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
- 08-15解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
- 08-15Python 使用PyMySql 库 连接MySql数据库时 查询中文遇到的乱码问题(实测可行) python 连接 MySql 中文乱码 pymysql库