application/x-www-form-urlencoded

为什么我们需要 URL 编码?

根据定义,URI 有两种类型的字符,保留的和非保留的。 将保留字符视为具有特定含义的特殊字符。 例如,正斜杠字符用于分隔 URL 的不同部分。 URL 编码过程允许我们将任何字符串转换为 URI 有效字符串,将原本保留的字符编码为百分比编码的字符。

"

在 Golang 中对查询字符串进行 URL 编码

net/urlQueryEscape
func QueryEscape(s string) string
QueryEscape

让我们看一个例子

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

在 Golang 中对多个值进行 URL 编码

url.Valuesurl.Values.Encode()
func (v Values) Encode() string

编码将值编码为按键排序的“URL 编码”形式(“bar=baz&foo=quux”)。

让我们看一个示例,其中包含多个要进行 URL 编码的键

package main

import (
    "fmt"
    "net/url"
)

func main() {
    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())
}

输出如下

http://example.com/say?author=golang+c%40fe+%3E.%3C&message=this+will+be+esc%40ped%21

我希望大家喜欢这篇文章并学习了如何在 Go (Golang) 中对字符串进行 URL 编码(或百分比编码)!