Go で URL 全体をエンコードおよびデコードする推奨される方法は何ですか? メソッドと は知っていますurl.QueryEscape
が、探しているものとは正確には一致しないようです。具体的には、JavaScript のや のurl.QueryUnescape
ようなメソッドを探しています。encodeURIComponent
decodeURIComponent
ベストアンサー1
必要なURLエンコードはすべてネット/URLモジュールです。URL の各部分ごとに個別のエンコード関数を分離することはなく、URL 全体を構築する必要があります。ソース コードをざっと見たところ、非常に優れた標準準拠の作業であると思います。
ここに例を示します(遊び場リンク)
package main
import (
"fmt"
"net/url"
)
func main() {
Url, err := url.Parse("http://www.example.com")
if err != nil {
panic("boom")
}
Url.Path += "/some/path/or/other_with_funny_characters?_or_not/"
parameters := url.Values{}
parameters.Add("hello", "42")
parameters.Add("hello", "54")
parameters.Add("vegetable", "potato")
Url.RawQuery = parameters.Encode()
fmt.Printf("Encoded URL is %q\n", Url.String())
}
どの印刷物か
Encoded URL is "http://www.example.com/some/path/or/other_with_funny_characters%3F_or_not/?vegetable=potato&hello=42&hello=54"