嵌入式QT文件管理显示磁盘中文文件名

    xiaoxiao2023-03-24  4

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

    转载请注明原文地址: https://ju.6miu.com/read-1202567.html
    最新回复(0)