sqlite中以GBK存的中文,在Linux环境的QT开发中QSqlQuery查询出来是乱码,需要如何转换,具体如何操作,谢
我尝试加入
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
以及query.value(0).toString()后加上.toUtf8()依旧是乱码,不过此时乱码能辨识部分正确中文,不知道是什么原因,请各位大大帮帮忙
追问:Linux中不是utf-8么?我只是要读取那个数据库,那个数据库别的程序还在用的,写入的数据编码就是GBK没办法去改,只能我QT这里做处理,悲剧,有什么好的建议么?
答案:最简单的办法就是你的程序脚本也是GBK编码
其他:python code:
def convert(o):
return o if not isinstance(o, (str,)) \
else o.decode('gbk').encode('utf-8')
def rowconvert(r):
return map(convert, r)
上一个:sqlite数据表的字段有没有数量的限制,如果有是多少
下一个:SQLITE3 如何打开.db的数据库文件查看文件内容