QString token;
token.toUtf8().toPercentEncoding();
toPercentEncoding() 函数
toPercentEncoding
是用于将字符串中的特殊字符转换为百分号编码格式的一个方法。这种编码方式常用于 URL 中,以确保特殊字符(如空格、斜杠等)不会引起误解。它的作用是将这些字符转换为由百分号(%)加上两个十六进制数字组成的格式,例如空格会被编码为 %20
。
注意的地方 :
转换百分号编码后, 如果后面还有arg()函数, 会把 %* 清除。
QString token="+a+b”;
QString url = QString("www.abc.com?token=%1").arg(token.toUtf8().toPercentEncoding());
这个方式url里的%2B是正常存在的。
QString url = QString("www.abc.com?token=%1&lang=%2").arg(token.toUtf8().toPercentEncoding().arg("zh");
这个方式url里的%2B是不在的。%2直接被替换了
解决方法将有百分号编码的参数放在最后就行。
QString url = QString("www.abc.com?lang=%1&token=%2").arg("zh").arg(token.toUtf8().toPercentEncoding();