How to understand and use url.QueryEscape
, in Go language?
Asked
Active
Viewed 1.2k times
9

exebook
- 32,014
- 33
- 141
- 226

ggaaooppeenngg
- 1,323
- 3
- 17
- 27
1 Answers
23
To understand the usage of url.QueryEscape
, you first need to understand what a url query string is.
A query string is a part of URL that contains data that can be passed to web applications. This data needs to be encoded, and this encoding is done using url.QueryEscape
. It performs what is also commonly called URL encoding.
Example
Let's say we have webpage:
http://mywebpage.com/thumbify
And we want to pass an image url, http://images.com/cat.png
, to this web application. Then this url needs look something like this:
http://mywebpage.com/thumbify?image=http%3A%2F%2Fimages.com%2Fcat.png
In Go code, it would look like this:
package main
import (
"fmt"
"net/url"
)
func main() {
webpage := "http://mywebpage.com/thumbify"
image := "http://images.com/cat.png"
fmt.Println( webpage + "?image=" + url.QueryEscape(image))
}

ANisus
- 74,460
- 29
- 162
- 158
-
why should we do like this, rather than directly use the image url? – ggaaooppeenngg Jan 04 '14 at 14:15
-
4It is part of the standard and it is required. Some characters are not allowed in urls (like space), and some characters have special meanings in the url (like =, # or &). Without encoding we cannot say if & is part of the data or if it is a delimiter. – ANisus Jan 04 '14 at 14:21