QTextStream 操作檔案中含有中文時亂碼

2021-08-16 00:19:15 字數 759 閱讀 8699

問題描述:替換本地file.project檔案中的所有某一字串,test.project中含有中文,發現缺少qtextcodec::codecforname("utf-8")後總是亂碼。所以總結出qtextstream的預設編碼方式不是utf-8,所以需要手動指定一下才能正確解析。示例**如下:

qtextstream filestream(&file  );

filestream.setcodec(qtextcodec::codecforname("utf-8"));//必須加,否則含有中文時亂碼

qstring qsall = filestream.readall();

file.close();//關閉檔案

if (!file.open(qiodevice::writeonly|qiodevice::truncate))

qtextstream out(&file );

out.setcodec(qtextcodec::codecforname("utf-8"));//必須加,否則含有中文時亂碼

qstring qsoldkey = kpatientinfo + "/" + qsoldpatientid + "/";

qstring qsnewkey = kpatientinfo + "/" + qspatientid + "/";

qsall.replace(qsoldkey, qsnewkey );

out << qsall;

file.close();

Python IO操作 檔案操作

讀檔案使用python內建的函式open 可以開啟乙個檔案 類似c語言 f open file.txt r f.read f.close 檔案讀寫時可能都會出錯,產生ioerror,一旦出錯f.close 就不能用,所以我們可以使用try finally try f open file.txt r ...

基本操作 檔案操作

開啟檔案 f open yesterday r encoding utf 8 讀寫 f open yesterday w encoding utf 8 寫讀 f open yesterday a encoding utf 8 追加寫讀 f open yesterday wb 寫讀 二進位制檔案 vi...

檔案操作 檔案讀寫

檔案讀寫實質也是呼叫api函式,微軟給我們提供了強大的檔案讀寫程式設計介面。讀寫的一般步驟是 1.呼叫createfile函式開啟或者建立檔案,返回檔案控制代碼 2.利用檔案控制代碼呼叫writefile或readfile函式寫入或讀取檔案 3.呼叫closehandle函式關閉開啟的檔案控制代碼 ...