QT文本操作中文乱码,如何解?

牧牛童子 2019-04-02 02:01:00
QTextStream打开一文本文件,为何总是第一次读出来中文是乱码(逐行读、打印输出),然后再读一遍或两遍(读取操作再重复),中文就能正常读出?

何故?

QFile f01("test.txt");
if(!f01.open(QIODevice::ReadOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
QMessageBox::warning(nullptr,"提示","打开文件时出现异常!");
return -1;
}

QTextStream txtInput(&f01);
while(!txtInput.atEnd())
{
QString lineStr;
lineStr = txtInput.readLine();
qDebut()<<lineStr;
}
...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pm3782 2019-06-22
  • 打赏
  • 举报
回复
网上找了好多说法修改字符集,似乎都无效。这个方法回来测试一下。
牧牛童子 2019-06-22
  • 打赏
  • 举报
回复
留个脚印,便于以后参考。感谢楼主分享。
louis_liux 2019-04-03
  • 打赏
  • 举报
回复
多看看帮助手册
牧牛童子 2019-04-02
  • 打赏
  • 举报
回复
自己从坛子里找到方法了。 QTextStream txtInput(&f01); txtInput.setCodec("UTF8"); //设置文件流编码方式;--2019.04.02 测试只需此一行解决中文乱码,效果OK。

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧