• 2593阅读
  • 3回复

[提问]QFTP获取中文目录乱码 [复制链接]

上一主题 下一主题
离线clay_child
 

只看楼主 正序阅读 楼主  发表于: 2019-05-08
使用环境   MSVC2015+Qt5.10  和MSVC2015静态编译+Qt5.10
问题
连接服务器之后,关联list消息,connect(m_ftp, SIGNAL(listInfo(const QUrlInfo&)), this, SLOT(Slot_ListInfo(const QUrlInfo&)));
在槽函数Slot_ListInfo(const QUrlInfo& info),使用QString name=QString::fromlocal8bit(info.name().toLatin1())处理,
在MSVC2015里可以正常获取中文目。但是当我将MSVC2015换成  制作的静态编译版本后,同样的代码中文却出现了乱码


经过仔细分析,使用QString name=info.name()直接获取从qftp服务器获取的中文字符,在MSVC2015得得到的字符等价于  QString name=QString::fromLatin1("中文"); 但是在MSVC2015静态编译版本里得到的字符等价于 QString name="中文";    由于qt默认采用了uft8编码,后者得到的字符无法解决乱码问题。研究了一段时间始终无法解决这个问题,想问问有没有遇到过类似问题的大佬?
离线clay_child

只看该作者 3楼 发表于: 2019-05-24
回 automoblie0 的帖子
automoblie0:QFTP是4版的,问下如何完整的编译QFTP? 我每次编译后用5时候获取list时提示缺少编译 (2019-05-09 11:48) 

缺少编译?
离线automoblie0

只看该作者 2楼 发表于: 2019-05-09
QFTP是4版的,问下如何完整的编译QFTP? 我每次编译后用5时候获取list时提示缺少编译
离线clay_child

只看该作者 1楼 发表于: 2019-05-08
我自己找到原因了,我用的Qt5.10里面有qftp.cpp和qurlinfo.cpp两个源文件,它里面对字符的处理方式是用的QString::fromUtf8。而我自己用的Qftp源文件里对字符串的处理方式是QString::fromLatin1。然后用qt5.10制作的静态编译版本里,network.lib里已经包含了qftp的里。导致程序用的是它自己的源码,中文乱码的问题就出现了
快速回复
限100 字节
 
上一个 下一个