我有一个包含编码 URL 的 QString,这意味着您将其插入浏览器的 url,例如:
QString string = "http://domain.tld/index.php?some%20encoded&another%20encoded";
当我创建 QUrl 时
QUrl(string);
它随机决定什么应该编码,什么不应该编码,在这种情况下它会留下“?” 和 "&" 解码,但 AGAIN 编码百分比符号。所以目标 php 应用程序收到“some%20encoded”而不是“some encoding”。
这似乎是 QT 在自动尝试解析“和修复”url 时的一些特性。可以通过调用禁用此功能
QUrl(string, QUrl::StrictMode);
它在 qt 5+ 中完美运行,但在 qt 4 中,尽管它可以编译,但它的行为与我没有提供 StrictMode 参数一样。如何从我自己编码且不需要进一步编码的字符串创建 url?