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采用正确的中文编码。