URLのエンコード/デコード 質問する

URLのエンコード/デコード 質問する

Go で URL 全体をエンコードおよびデコードする推奨される方法は何ですか? メソッドと は知っていますurl.QueryEscapeが、探しているものとは正確には一致しないようです。具体的には、JavaScript のや のurl.QueryUnescapeようなメソッドを探しています。encodeURIComponentdecodeURIComponent

ベストアンサー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"

おすすめ記事