第一步:先用這個檔案原先的編碼讀取檔案內容存到區域性變數當中,然後呼叫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 ...