QT显示文件名变成问号怎么办 大神们。。

[复制链接]
查看11 | 回复10 | 2021-1-27 06:36:19 | 显示全部楼层 |阅读模式
hello,大神们
本人在linux下用QT4读U盘内容,系统下其他的中文用的UTF-8的显示正常的但是如果我在windows下中文命名的文件用的其它字符集的文件名就显示问号了。。。请问何解呢?
部分代码如下:
QStringTarget=tr("/dev/sd%1%2").arg(QString(dev)).arg(i);
//mountU盘不知道参数有错没
intresult=mount(Target.toLatin1(),MEMORYCARD,"vfat",0,0);
for(inti=0;ifileName()));items.push_back(item);
item=newQStandardItem(tr("%1/%2").arg(fileInfo->path()).arg(fileInfo->fileName()));items.push_back(item);
Model->insertRow(Model->rowCount(),items);}

还有就是我试过setCodecForTr这类什么的函数了,系统默认是UTF-8编码,我
//GBKGB2312GB18030都试过了
QTextCodec*codec=QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
米有效果啊。。。
好着急呀,有知道的大神们指导下。。。谢谢了!!!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
试试同时把几个编码加进去…
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
呃有没有知道的人呀。。。
1楼的意思不是很明白
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
把库带上.0.
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
在你的字库里面放上正确的GBK编码的字库看看。
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
看看linux的文件管理器显示正常吗?
回复

使用道具 举报

千问 | 2021-1-27 06:36:19 | 显示全部楼层
怎么都没人看仔细帖子呢,不是说了像
QTextCodec*codec=QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
之流,都试过了。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行