嵌入式QT文件管理顯示磁盤中文文件名

QString與各編碼之間的關係

QString本身是unicode編碼,所以我們要將Linux系統支持的字符編碼(可能是utf8、、、)轉化爲QString

Linux一般支持UTF-8文件編碼,所以

QFileInfo & fileInfor ;

fileInfor.fileName();返還的是UTF8的文件編碼,若直接賦值給QString,(若文件名存在中文,則會顯示中文亂碼)。

所以要將utf8文件編碼轉化爲QString本身的unicode編碼。

可以採用如下方式:

QFileInfo & fileInfor ;

fileInfor.fileName();

QTextCodec *codec = QTextCodec::codecForName("utf8");

QString fileName =codec->toUnicode( fileInfor.fileName());

結果是QT 顯示的 fileName 就是QT讀取系統文件的正確文件編碼模式(即能正常顯示中文)。

當然前提是嵌入式Linux系統裏面已經包含中文字庫以及設置QT採用正確的中文編碼。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章