go url encode 方法
urlencode
golang下可以使用net/url模块实现urlencode和urldecode操作。
urlencode具体实现的函数为url.QueryEscape
urldecode具体实现的函数为url.QueryUnescape
另外 url.ParseRequestURI
QueryUnescape会处理+以及%20变成空格,ParseRequestURI只把%20变成空格
根据最新的RFC3986
1 URI中的字段只能空格编码成%20
golang使用ParseRequestURI来解析,符合标准
2 query string作为application/x-www-form-urlencoded的方式,可以编码成+,也可以编码成%20
URL中不管是URI还是query string,编码成%20
示例:
package main
import (
"fmt"
"net/url"
)
func main() {
s := "this will be esc@ped!"
fmt.Println("http://example.com/say?message="+url.QueryEscape(s))
}
输出结果
http://example.com/say?message=this+will+be+esc%40ped%21
表单编码
params := url.Values{}
params.Add("message", "this will be esc@ped!")
params.Add("author", "golang c@fe >.<")
fmt.Println("http://example.com/say?"+params.Encode())
本文链接地址:https://const.net.cn/295.html