我有一个字符串的QList,其中包含URL的部分,如下所示:/search/?q=god%20of%20war%3A%20collection%20-%20playstation%203&suggestionV=2
.
我用.replace()
函数删除了/search/?q=
、&suggestionV=2
和%20
部分,如下所示:currentString.replace("/search/?q=", "").replace("&suggestionV=2", "").replace("%20", " ");
,其结果为:"god of war%3A collection - playstation 3"
.如何转义下面的html字符代码:QT中的https://www.obkb.com/dcljr/charstxt.html?我需要将%3A和其他代码转换为纯文本格式,以便将%3A
转换为:
。
1条答案
按热度按时间gopyfrb31#
HTTP查询字符串有two primary coding sequences:
1.空格通常编码为
+
字符1.在HTML查询字符串中,任何具有特殊含义的字符都由
%
后跟两个十六进制数字编码不同的浏览器可能会也可能不会识别不同类型的“特殊”字符,这些字符都是以
%
为前缀的十六进制编码。使用简单的搜索/替换来将%2A
替换为:
,将%20
或+
替换为空格,等等,这是不可靠的,并且是一种有缺陷的方法。考虑以下HTML查询字符串:你会发现
%25
是十六进制编码的字符%
,所以解码后字符串变成了%20
。然后你会用空格替换它,留下一个空格字符作为最终的解码字符串吗?失败。原始编码字符串是%20
。解码HTTP查询字符串的唯一可靠方法是算法:一次扫描HTTP查询字符串一个字符,遇到
+
或%xx
时,用解码后的字符替换它,然后用字符串的其余部分继续***。