我有一个字符串,它成为url的查询字符串的一部分,并且必须对url进行编码。
QString queryStringParam = "J1mOEfg/TC";所以,我试着这样使用QUrl::toPercentEncoding()
QString encodedQueryString = QUrl::toPercentEncoding(queryStringParam);这会导致"J1mOEfg%2FT",但我调用的20f服务期望"J1mOEfg%2fT"注意到'/‘编码中的小写'f’到'%20f‘,因此拒绝该参数。这在服务方面可能很糟糕,但我对此无能为力。如何在保持其余参数大小写的同时获得十六进制字符的小写编码?
发布于 2012-09-25 13:36:06
我不认为你可以用标准函数来做到这一点,但你可以很容易地编写你自己的函数。在百分比编码的字符串中,特殊字符用%符号编码,后面跟一对十六进制数字。了解了这一点,您可以编写如下函数:
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;
}https://stackoverflow.com/questions/12576545
复制相似问题