1. Случай, когда в запросе кириллические символы:
У автора был url вида:
https://domain.name/data.json?searchtext=Запрос+На+Кириллице
Строка запроса является частью url и по стандарту не может содержать не-ASCII символы (RFC 1738). Так как в url присутствут кириллические символы то url нужно кодировать (URL encoding), что и делает функция QueryEscape из пакета net/url.
package main
import (
"fmt"
"net/url"
)
func main() {
q := "Запрос+На+Кириллице"
u := "https://domain.name/data.json"
fmt.Println(u + "?searchtext=" + url.QueryEscape(q))
}
$ go run main.go
https://domain.name/data.json?searchtext=%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%2B%D0%9D%D0%B0%2B%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B5
https://ru.wikipedia.org/wiki/URL#Кодирование_URL2. Случай когда в url доменное имя на кириллице:go get golang.org/x/net/idna
package main
import (
"fmt"
"golang.org/x/net/idna"
)
var p *idna.Profile
func main() {
p = idna.New()
fmt.Println(p.ToASCII("россия.рф"))
}
$ go run main.go
xn--h1alffa9f.xn--p1ai <nil>
https://ru.wikipedia.org/wiki/IDNhttps://ru.wikipedia.org/wiki/Punycode