查看完整版本: [-- QFTP获取中文目录乱码 --]

QTCN开发网 -> Qt中文处理 -> QFTP获取中文目录乱码 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

clay_child 2019-05-08 14:51

QFTP获取中文目录乱码

使用环境   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 2019-05-08 17:15
我自己找到原因了,我用的Qt5.10里面有qftp.cpp和qurlinfo.cpp两个源文件,它里面对字符的处理方式是用的QString::fromUtf8。而我自己用的Qftp源文件里对字符串的处理方式是QString::fromLatin1。然后用qt5.10制作的静态编译版本里,network.lib里已经包含了qftp的里。导致程序用的是它自己的源码,中文乱码的问题就出现了

automoblie0 2019-05-09 11:48
QFTP是4版的,问下如何完整的编译QFTP? 我每次编译后用5时候获取list时提示缺少编译

clay_child 2019-05-24 17:04
automoblie0:QFTP是4版的,问下如何完整的编译QFTP? 我每次编译后用5时候获取list时提示缺少编译 (2019-05-09 11:48) 

缺少编译?


查看完整版本: [-- QFTP获取中文目录乱码 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled