• 10123阅读
  • 4回复

[提问]如何读取从SQLite3命令行插入的中文数据??[乱码] [复制链接]

上一主题 下一主题
离线soulark
 

只看楼主 倒序阅读 楼主  发表于: 2009-03-20
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
从SQLite3命令行插入的中文数据, 通过QSqlQueryModel和QTableView读出来, 显示的都是乱码. WHY? 该如何解决?

PS: 已经在main函数里加上以下代码:
    QTextCodec *codec = QTextCodec::codecForName("gb18030");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);  
    QTextCodec::setCodecForTr(codec);

查了一些资料, sqlite的编码是utf-8. 应该没问题啊.

郁闷的是: 我从代码里insert中文数据进去, tableview显示没问题; 我再回到sqlite命令行去查看这些数据, 乱码!
离线wvins
只看该作者 1楼 发表于: 2009-03-20
你都说了Sqlite使用的是UTF-8编码,还用gb18030作为本地编码,不是找死么
离线soulark

只看该作者 2楼 发表于: 2009-03-23
兄台说的对, 好死不如赖活着.

QTextCodec *codec = QTextCodec::codecForName("UTF-8");

俺也用过. 不成.
离线wvins
只看该作者 3楼 发表于: 2009-03-23
看看你的Insert语句
离线hehui

只看该作者 4楼 发表于: 2009-09-17
QTextCodec *codec = QTextCodec::codecForName("gb18030");
这样的东西最好少用!
这是很不好的编程习惯!
有中文的地方用tr()吧!
我的插入中文没有任何乱码!
快速回复
限100 字节
 
上一个 下一个