我需要准确地获取用户已传输的内容。但是方法Query()在写入map之前未转义参数:( 示例:
package main
import "net/url"
func main() {
urlString := "http://www.example.com/?url=https://pt.wikipedia.org/wiki/B%c3%a1rbara_Gordon"
u, _ := url.Parse(urlString)
values := u.Query()
println(values.Get("url"))
// expected:https://pt.wikipedia.org/wiki/B%c3%a1rbara_Gordon
// output: https://pt.wikipedia.org/wiki/Bárbara_Gordon
}
答案 0 :(得分:0)
原始的未经转义的查询可在URL.RawQuery
字段中找到:
fmt.Println(u.RawQuery)
这将输出:
url=https://pt.wikipedia.org/wiki/B%c3%a1rbara_Gordon
当然,这只是“ string
”,如果只需要一部分,就必须自己解析它,但是几乎不需要。如果您打算将参数值注入另一个URL,只需使用url.URL
来构建它即可正确地对其进行转义。