作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个字符串,它成为 url 的查询字符串部分,必须进行 url 编码。
QString queryStringParam = "J1mOEfg/TC";
所以,我尝试使用 QUrl::toPercentEncoding()像这样
QString encodedQueryString = QUrl::toPercentEncoding(queryStringParam);
结果是 "J1mOEfg%2FT"
但我调用的网络服务需要 "J1mOEfg%2fT"
[注意编码中的小写字母 'f' '/' 到 '%20f'],因此拒绝该参数。这在服务方面可能很糟糕,但我对此无能为力。如何在保持其余参数大小写的同时获得小写编码的十六进制字符?
最佳答案
我认为您无法使用标准函数来完成,但您可以轻松编写自己的函数。在百分比编码的字符串中,特殊字符使用后跟一对十六进制数字的 %
符号进行编码。知道这一点后,您可以编写如下函数:
QString lowerPercentEncoding( QString str )
{
int index = str.indexOf("%");
while( index != -1 )
{
QString tmp = str.mid(index, 3);
str.replace(index,3,tmp.toLower());
index = str.indexOf("%", index + 1);
}
return str;
}
关于c++ - QUrl toPercentEncoding() 小写十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576545/
我有一个字符串,它成为 url 的查询字符串部分,必须进行 url 编码。 QString queryStringParam = "J1mOEfg/TC"; 所以,我尝试使用 QUrl::toPerc
我是一名优秀的程序员,十分优秀!