2014-12-18 16 views

回答

1

url.QueryEscape

http://play.golang.org/p/yNZZT-Xmfs

func main() { 
    fmt.Println(url.QueryEscape("/Hello, playground")) 
} 

// %2FHello%2C+playground 
+0

例如:quote('/〜connolly /')產生'/%7econnolly /'。 – lkkeepmoving 2014-12-18 22:30:41

+0

heh。看起來Go的'url'模塊是硬編碼的,根據[RFC-3986§2.3](https://tools.ietf.org/html)永遠不會轉義'〜','_','''或'-' /rfc3986#section-2.3),它表示他們的轉義形式*「不應該由URI生產者創建」*。 @lkkeepmoving你確定你需要逃避'〜'嗎? – 2014-12-18 22:51:09

+0

@JeremyBanks是的,我希望能夠逃避〜而不是默認情況下。基本上,一個函數與urllib.quote(string [,safe])相同。 – lkkeepmoving 2014-12-18 23:00:16

0

urllib.quote旨在引用一個URL的路徑部分。 Go的淨/ URL包不直接公開此功能,但你可以在它以一種迂迴的方式獲得:

func quote(s string) string { 
    return (&url.URL{Path: s}).RequestURI() 
} 

因爲Python函數逃脫超過它需要,這裏的報價功能和urllib.quote會並不總是給出相同的結果。

Go的QueryEscape提供和Python的urlib.quote_plus一樣的功能。