什么标准产生了十六进制编码的字符,前面加了"25"?

Wil*_*tin 18 url encoding

我正在尝试与ybp.com集成,ybp.com是一家专有软件供应商,负责管理大型图书馆的图书订购工作流程.它一直在向我提供包含编码为额外"25"的字符的URL.喜欢这本书的标题:

VOLATILE KNOWING%253a PARENTS%252c TEACHERS%252c AND THE CENSORED STORY OF ACCOUNTABILITY IN AMERICA%2527S PUBLIC SCHOOLS.
Run Code Online (Sandbox Code Playgroud)

此示例中的编码字符如下:

%253a = %3A = a colon
%252c = %2C = a comma
%2527 = %27 = an apostrophe (non-curly)
Run Code Online (Sandbox Code Playgroud)

我需要将这些编码转换为我的内部应用程序可以识别的格式,而额外的25种方法则会让事情变得更糟.十六进制编码字符的最后两位数字看起来与标准URL编码相同,因此强力方法是将"%25"替换为"%".但我知道这样做是因为当某个实际的%25因某种原因出现时肯定会困扰我.

那么,这个标准是什么?是否有官方算法将这样的值转换为其他编码?

Eri*_* J. 21

%25实际上是%字符.我的猜测是外部网站偶然两次URLEncoding他们的输出.

如果是这种情况,可以安全地用%(或只是URLDecode两次)替换%25

  • 值得一提的是“双重编码”是更多信息的搜索词 (2认同)