go http请求如果参数中带有"等特殊字符,参数传输可能会出现问题

编码完整的URL

url.QueryEscape(urlStr)

编码完整的URL

如果我们要对完整的 URL 进行编码呢? 就是PHP中 urlencode() 函数的功能。 在 GO 语言下可以直接使用 url.QueryEscape() 函数。

    escapeUrl := url.QueryEscape(urlStr)
    fmt.Println(escapeUrl)
     
    /**
    输出:https%3A%2F%2Fcong5.net%2Fpost%2Fgolang%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D20%26sex%3D1
    **/

解编码url

url.QueryUnescape(escapeUrl)
既然有了编码,那么就肯定有配套的解编码函数的了。 PHP中有 urldecode() 函数的功能。 在GO 语言下可以直接使用 url.QueryUnescape() 函数。

    enEscapeUrl, _ := url.QueryUnescape(escapeUrl)
    fmt.Println(enEscapeUrl)
     
    //输出:
    //https://cong5.net/post/golang?name=张三&age=20&sex=1

参考:

https://blog.csdn.net/tankpanv/article/details/104866631?utm_term=QueryUnescape go 安全么&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-0-104866631-null-null&spm=3001.4430

posted @ 2022-06-17 16:15  HaimaBlog  阅读(418)  评论(0编辑  收藏  举报