C++ Qt-QUrl:dons';url编码冒号
我有网址:C++ Qt-QUrl:dons';url编码冒号,c++,qt,C++,Qt,我有网址:https://example.com/hello?param=first:last。我希望它应该被百分比编码为https://example.com/hello?param=first%3Alast。但Qt保持原样。我的代码: QUrl url("https://example.com/hello?param=first:last"); printf("Encoded: %s\n", url.toEncoded().constData()); 我应该如何编码冒号?使用QString
https://example.com/hello?param=first:last
。我希望它应该被百分比编码为https://example.com/hello?param=first%3Alast
。但Qt保持原样。我的代码:
QUrl url("https://example.com/hello?param=first:last");
printf("Encoded: %s\n", url.toEncoded().constData());
我应该如何编码冒号?使用
QString::toPercentEncoding
?手动设置参数格式非常确定您想要QUrl::setEncodedURL
和QUrl::toEncoded
您使用的是哪个版本的Qt
IIRC Qt 3使用了
QUrl:encode非常确定您想要QUrl::setEncodedURL
和QUrl::toEncoded
您使用的是哪个版本的Qt
IIRC Qt 3使用了QUrl:encode
关于URL中的冒号安全性已经有一些讨论。这听起来像是我不熟悉的RFC坚持
看起来您可能必须自己替换任何“:”字符(https:”之后)。关于URL中的冒号安全性,有一些讨论。这听起来像是我不熟悉的RFC坚持
看起来您可能必须自己替换任何“:”字符(https:”之后)。由于安全问题,您必须替换冒号
更多信息:
您可以对冒号使用百分比编码(“:”->“%3A”),请参阅和。由于安全问题,必须替换冒号
更多信息:
可以对冒号使用百分比编码(“:”->“%3A”),请参见和。我认为QUrl::TOPERCENTENCODE()是最好的选择。默认情况下,它会对所有标准字符进行编码,您可以手动指定自己要编码的其他字符列表:
参考URL:
我认为QUrl::TOPERCENTENCODE()是你最好的选择。默认情况下,它会对所有标准字符进行编码,您可以手动指定自己要编码的其他字符列表:
参考URL:
QUrl::setEncodedUrl
输入中已编码字符串的百分比除外。但我有原始字符串。QUrl::setEncodedUrl
除了输入中已编码的百分比字符串。但我有原始字符串。这些安全原因是什么?这些安全原因是什么?不幸的是,它将对所有内容进行编码。http中的事件冒号:http://hello.com
将是http%3A%2F%2Fhello.com
。那不是我想要的。我提到这个方法是手动编码参数。不幸的是,它会对所有内容进行编码。http中的事件冒号:http://hello.com
将是http%3A%2F%2Fhello.com
。那不是我想要的。我将此方法称为手动编码参数。