QT開發 遞迴轉換檔案編碼

2021-07-23 08:59:43 字數 1428 閱讀 5353

第一步:先用這個檔案原先的編碼讀取檔案內容存到區域性變數當中,然後呼叫qfile::remove()方法刪除檔案

第二步:建立乙個跟原先檔名同名的檔案,然後設定你要轉換的編碼,(使用qtextsream::setcodec()方法),將檔案內容寫入這個新建立的檔案當中

以上兩步就可以實現給檔案轉碼。

void widget::switchcode(qstring filepath)

qtextstream in(&file);

in.setcodec(oldcode.toutf8().data());

qstring content = in

.readall();

//qdebug() << "content:"

<< content;

file.resize(0);

file.remove();

file.close();

qfile outfile(filepath);

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

qtextstream out(&outfile);

out.setcodec(newcode.toutf8().data());

out<< content;

outfile.close();

}

上面的**很簡單,就是我跟我上面說的一樣

其中需要介紹的就是oldcode和newcode,這兩個代表

要轉換的檔案的原先編碼和要轉換的編碼,變數是定義在類裡面的

屬成員變數

下面介紹如果遞迴實現整個專案的轉化

void widget::recursion(qstring filepath)

//資料夾列表

qfileinfolist folder_list = dir.entryinfolist(qdir::dirs | qdir::nodotanddotdot);

for(int i = 0; i < folder_list.size(); i++)

}

qfileinfo這個類表示檔案資訊,如果需要知道開啟的檔案是資料夾還是檔案,就需要借助這個類,qfileinfolist這個類是qfileinfo類的集合,就是』qlist < qfileinfo > 『的typedef定義,剩餘的比較簡單,大體的思路是先獲取資料夾下面的所有檔案,然後使用迴圈給這個檔案轉碼,然後獲取資料夾下面的所有資料夾,然後順還進行遞迴呼叫。

(編碼轉換)轉換檔案編碼

目錄 1 轉換編碼種類 2 轉編碼操作步驟 1 轉換編碼種類 可轉為 utf 8 最常用 ansi unicode unicode big endian 這四類編碼 2 轉換編碼操作步驟 1 將檔案以記事本方式開啟 注意 如果不可以請先將檔案轉換為 csv 檔案,再以記事本開啟 2 點選記事本左上方...

Python 轉換檔案編碼

有時候想要把 放到平板或是手機上 但是相應的閱讀軟體支援編碼為utf 8格式的檔案,類似gbk等編碼格式裡的漢字都會呈現亂碼狀態。手動用notepad 轉換很方便,但是批量處理就很尷尬了,由此引出本篇blog chardet codecs codecs模組提供了實現這些規則的方法,通過模組公開的方法...

Mac下轉換檔案編碼格式

win下檔案預設使用gbk編碼,而mac下是utf 8,難免遇到亂碼的情況,可以通過終端iconv命令解決。單個檔案轉碼 iconv f 原編碼格式 t 新編碼格式 原路徑 新路徑 iconv f gbk t utf 8 users ypf downloads 恐怖廣播.txt users ypf ...