如何从编码的URL创建QUrl

时间:2013-09-25 09:27:35

标签: c++ qt

我有一个QString,其中包含编码的URL,也就是说,您可以将其插入浏览器,例如:

QString string = "http://domain.tld/index.php?some%20encoded&another%20encoded";

当我创建像

这样的QUrl时
QUrl(string);

它随机决定应该编码什么,不应该编码什么,在这种情况下它会留下“?”和“&”解码,但AGAIN编码百分比符号。所以目标php应用程序接收“some%20encoded”而不是“some encoded”。

这似乎是QT在自动尝试解析“并修复”网址时的一些功能。可以通过调用

禁用此功能
QUrl(string, QUrl::StrictMode);

在qt 5+中完美地工作但在qt 4中,尽管它编译,但它具有与我没有提供StrictMode参数相同的行为。如何从我自己编码的字符串创建url,哪些不需要进一步编码?

1 个答案:

答案 0 :(得分:3)

你在寻找什么

QUrl QUrl::fromEncoded (const QByteArray  &input ) [static]

QUrl doc