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採用正確的中文編碼。