golang url.PathUnescape在%%中无法使用

时间:2019-04-28 08:38:44

标签: go url

我使用golang url.PathUnescape函数对url进行了转义,但无法在%%中使用。

我收到一个请求,该请求的网址是/ search /?ptp = 1&q =%27%22&%% 3cacx%3e%3cscript%20%3emcyv9834%3c / script%3e&t = bao。 当我使用golang url.PathUnescape函数对url进行转义时,却出现错误,是无效的URL转义“ %% 3”。为什么?

package main
import (
    "net/url"
    "fmt"
)
func main() {
    str := `/search/?ptp=1&q=%27%22&%%3Cacx%3E%3CScRiPt%20%3EmCyV9834%3C/ScRiPt%3E&t=bao`
    a, b := url.PathUnescape(str)
    fmt.Println(a, b)
}

原始网址是/ search /?ptp = 1&q ='“&%mCyV9834&t = bao。

1 个答案:

答案 0 :(得分:0)

  

但有错误,是无效的URL转义“ %% 3”。为什么?

因为%% 3在URL路径中不是有效的百分比编码。

如果您需要处理格式错误的URL,则必须自己实现。 (或在上游修复。)