首页 > 其他分享 >qtCreator 读取utf8文本中文乱码

qtCreator 读取utf8文本中文乱码

时间:2023-07-31 10:23:15浏览次数:44  
标签:读取 utf8 ret 乱码 pDlg qtCreator QString path

总是碰到乱码,已经写了(抄了)好几篇关于中文乱码的文章,以为能解决乱码问题了,又又碰到了乱码。

是这样的:用的qt5.9.8,编译了一个小程序(mingw),是读取txt文件(utf8),ui->txtEdit->setText(str);显示出来时乱码。

后来试了一圈,用下面方法解决了乱码(如果读取超大文件,用这种方法好不好使,我没试过):

 1 QString MainWindow::ReadJson(QString filePath)
 2 {
 3     QFile file(filePath);
 4     if(!file.open(QIODevice::ReadOnly | QIODevice::Text))//只读
 5     {
 6         ui->lblShowStatus->setText("文件打开失败");
 7         return "";
 8     }
 9     QString ret;
10     QTextStream readStream(&file);
11 
12     while(!readStream.atEnd())    //没有读到文件末尾
13     {
14         //readLine 读取一行
15         ret += readStream.readLine();
16     }
17 
18     ret = QString::fromUtf8(ret.toUtf8());
19     return ret;
20 }
21 
22 void MainWindow::on_btnLoadFile_clicked()
23 {
24     QFileDialog *pDlg = new QFileDialog(this);
25     pDlg->setWindowTitle("select a file(txt)");
26     pDlg->setNameFilter("*.txt");
27 
28     QString path;
29     if(pDlg->exec() == QDialog::Accepted){
30         path = pDlg->selectedFiles()[0];
31 
32     }
33     ui->txtFilePath->setText(path);
34     if(!path.isEmpty()){
35         QString str = ReadJson(path);
36         ui->txtSend->setText(str.toLocal8Bit());
37     }
38 
39 }

如果有什么好办法,请评论告诉我,谢谢。

标签:读取,utf8,ret,乱码,pDlg,qtCreator,QString,path
From: https://www.cnblogs.com/warmlight/p/17592728.html

相关文章

  • java读取txt文件解决乱码问题
    说明:由于txt文件有bom和不同的编码方式,导致导入数据时产生乱码,以下代码完美解决乱码问题。参考他人代码,结合自己的业务加工完成,费了大半天功夫完成,希望对大家有点用处。废话不多说,直接上代码:/***从txt文件流读取数据**@paramtxtStream*@return......
  • 解决:vscode插件C/C++ CompileRun 输出中文乱码问题
    打开插件设置在该设置中加入语句-fexec-charset=GBK即可......
  • idea maven 命令后控制台乱码
    首先在idea中查看maven的编码方式mvn-vMavenhome:D:\apache-maven-3.6.3\bin\..Javaversion:11.0.17,vendor:OracleCorporation,runtime:C:\ProgramFiles\Java\jdk-11.0.17Defaultlocale:zh_CN,platformencoding:GBKOSname:"windows11",version:......
  • 快捷搜索栏进行搜索,出现乱码问题
    参考修改以下内容: 图片中方法代码如下://[B72]HttpURLConnection garbled code,tiansheng 20230719 -b+       private static String getCharset(String type) {+               String[] typeArray = type.split(";");+       ......
  • WinForm RichTextBox 加载大量文本卡死和UTF-8乱码问题
    在RichTextBox控件的使用中我们会遇到加载TXT文件的问题,通常我们会有两种处理方式。一、加载TXT字符串,设置到RichTextBox//打开并且读取文件数据FileStreamfs=newFileStream(txtPath,FileMode.Open,FileAccess.Read);StreamReadersr=newStreamReader(fs,Encoding.U......
  • Linux 如何删除乱码文件-inode删除
    步骤一使用ls-li命令查看文件的inodels-li红框标识的为文件的inode步骤二按inode删除文件删除文件find-inum28577716-delete上面的数字为查询到的inode删目录find-inum28577716-execrm-rf{};上面的数字为查询到的inode......
  • java 文件名中文乱码解决
    java文件名中文乱码解决StringjsonFileName="";jsonFileName=newString(file.getName().getBytes(),"gb2312");System.out.println("1====="+jsonFileName);jsonFileName......
  • java zipfile解压文件乱码
    JDK提供了构造函数,我们指定zip文件的字符集。//根据ZIP文件创建ZipFile对象zipfile解压文件乱码,可指定编码ZipFilezipFile=newZipFile(zipFileName,"gb2312");//ZipFilezipFile=newZipFile(zipFileName,"GBK");//Z......
  • Django的render函数输出到html页面出现乱码
    有三种方法:在页面中设置编码即可解决<metacharset="utf-8">在视图函数中设置响应对象的字符编码fromdjango.httpimportHttpResponsedefmy_view(request):response=HttpResponse('hello')response['Content-Type']='text/plain;......
  • python字符串转utf8
    Python字符串转UTF-8在Python中,字符串是一种常见的数据类型,用于存储和处理文本数据。在处理字符串时,我们经常需要将字符串转换成不同的编码格式,其中UTF-8是最常用的一种编码格式。UTF-8编码被广泛应用于国际化和多语言环境中,支持包括中文在内的世界上几乎所有的字符。什么是UTF-8......