回答

收藏

编码/解码 URL

技术问答 技术问答 260 人阅读 | 0 人回复 | 2023-09-12

在 Go 整个  URL 的推荐方法是什么?我知道方法url.QueryEscape和url.QueryUnescape,但他们似乎不是我在寻找的。具体来说,我在寻找 JavaScriptencodeURIComponent和decodeURIComponent.
- H7 A5 L  n* x                                                                3 o$ b0 x) ?& Z4 J* i( m3 R% z
    解决方案:                                                                1 }& M/ k2 ^5 R/ R: C% X
                                                                您可以使用net/url所有你想要的 模块URL 编码。它不会是 URL 的每个部分分解单独的编码函数,你必须让它构建整个 URL。斜视源代码后,我认为它做得很好,符合标准。
2 z4 |" ?! ^" |9 N5 V这是一个例子(play)5 K& a, G. k( R& d- B

    ' Z: x2 J# J. l; R
  • package mainimport  "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()code]打印[code]Encoded URL is "http://www.example.com/some/path/or/other_with_funny_characters?_or_not/?vegetable=potato&hello=42&hello=54"
    & c* S/ u: [3 i6 x. i
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则