c++ 在QT中将html代码转义为纯文本格式

x8goxv8g  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(260)

我有一个字符串的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转换为:

gopyfrb3

gopyfrb31#

HTTP查询字符串有two primary coding sequences
1.空格通常编码为+字符
1.在HTML查询字符串中,任何具有特殊含义的字符都由%后跟两个十六进制数字编码
不同的浏览器可能会也可能不会识别不同类型的“特殊”字符,这些字符都是以%为前缀的十六进制编码。使用简单的搜索/替换来将%2A替换为:,将%20+替换为空格,等等,这是不可靠的,并且是一种有缺陷的方法。考虑以下HTML查询字符串:

%2520

你会发现%25是十六进制编码的字符%,所以解码后字符串变成了%20。然后你会用空格替换它,留下一个空格字符作为最终的解码字符串吗?失败。原始编码字符串是%20
解码HTTP查询字符串的唯一可靠方法是算法:一次扫描HTTP查询字符串一个字符,遇到+%xx时,用解码后的字符替换它,然后用字符串的其余部分继续***。

相关问题