我如何在Qurl中包括一个百分点的标志

How can I include a percent sign in QUrl

本文关键字:百分点 标志 包括一 Qurl      更新时间:2023-10-16

我是今天下午的C 新手,我很难。

我有以下行:

const QUrl command("http://192.168.11.11/subdomain/letters?t=somekeyword&p=%01")

但是,当在qnetworkAccessManager中发送QURL"命令"时,实际上是在%符号后发送 25 。现在我知道Qurl在TolerantMode中,并且正在添加IT认为这是用户输入错误。

不需要的结果:

http://192.168.11.11/subdomain/letters?t=somekeyword&p=%2501

如何防止修改我的URL?

我也试图将我的百分比标志加倍并插入后斜线。

任何帮助将不胜感激。谢谢。

这是一个棘手的问题。这是我想到的解决方案:

代码

QByteArray rawQuery("t=somekeyword&p=%01");
QUrl command("http://192.168.11.11/subdomain/letters");
command.setEncodedQuery(rawQuery);
std::cout << command.toEncoded().data();

结果

http://192.168.11.11/subdomain/letters?t=somekeyword&p=%01

注释

该解决方案依赖于SetenCodedquery中描述的某些行为,该行为

将URL的查询字符串设置为查询。将字符串插入AS,并且在调用ToenCoded()。

时不会执行其他编码。

如果您需要传递不适合键值模式的查询字符串,或者使用其他方案来编码特殊字符,则此功能将很有用。

将qbyTearray()的值传递到查询(null QbyTearray)的值(null QbyTearray)完全毫无疑问。但是,传递QbyTearray的值(")将把查询设置为空值,好像原始URL具有孤独的"?"。

参考

  • http://qt-project.org/doc/qt-4.8/qurl.html#setencodedquery