首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QUrl toPercentEncoding()小写十六进制

QUrl toPercentEncoding()小写十六进制
EN

Stack Overflow用户
提问于 2012-09-25 13:14:51
回答 1查看 1.4K关注 0票数 3

我有一个字符串,它成为url的查询字符串的一部分,并且必须对url进行编码。

代码语言:javascript
复制
QString queryStringParam = "J1mOEfg/TC";

所以,我试着这样使用QUrl::toPercentEncoding()

代码语言:javascript
复制
QString encodedQueryString = QUrl::toPercentEncoding(queryStringParam);

这会导致"J1mOEfg%2FT",但我调用的20f服务期望"J1mOEfg%2fT"注意到'/‘编码中的小写'f’到'%20f‘,因此拒绝该参数。这在服务方面可能很糟糕,但我对此无能为力。如何在保持其余参数大小写的同时获得十六进制字符的小写编码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-25 13:36:06

我不认为你可以用标准函数来做到这一点,但你可以很容易地编写你自己的函数。在百分比编码的字符串中,特殊字符用%符号编码,后面跟一对十六进制数字。了解了这一点,您可以编写如下函数:

代码语言:javascript
复制
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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12576545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档