如何从编码的 URL 创建 QUrl

how can I create QUrl from encoded url

本文关键字:URL 创建 QUrl 编码      更新时间:2023-10-16

我有一个QString,其中包含编码的URL,这意味着您将它插入浏览器的URL,例如:

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

当我像创建 QUrl 一样

QUrl(string);

随机决定应该编码什么,不应该编码什么,在这种情况下,它保留"?"和"&"解码,但再次编码百分比符号。因此,目标 php 应用程序接收"some%20encoded"而不是"some encoded"。

这似乎是QT自动尝试解析"并修复"url时的某些功能。此功能可以通过调用来禁用

QUrl(string, QUrl::StrictMode);

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

你在寻找的是

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

QUrl doc