Функция url.QueryEscape
Функция url.QueryEscape преобразует строку в формат, пригодный для включения
в состав URL-запроса. Она выполняет процентное кодирование (URL encoding)
всех специальных символов, которые недопустимы в значениях параметров запроса.
В первый параметр функции передается исходная строка, которую необходимо
экранировать.
Синтаксис
url.QueryEscape(s string) string
Пример
Давайте закодируем строку, содержащую пробелы и специальные символы:
package main
import (
"fmt"
"net/url"
)
func main() {
res := url.QueryEscape("hello world")
fmt.Println(res)
}
Результат выполнения кода:
"hello+world"
Обратите внимание, что пробел в строке заменяется на символ +,
так как именно такой способ кодирования пробела предусмотрен стандартом
для значений параметров URL-запроса.
Пример
Закодируем строку с несколькими специальными символами:
package main
import (
"fmt"
"net/url"
)
func main() {
res := url.QueryEscape("name=John&age=30")
fmt.Println(res)
}
Результат выполнения кода:
"name%3DJohn%26age%3D30"
Символы = и & были заменены на соответствующие
процентные последовательности, чтобы они не интерпретировались как
разделители параметров при формировании URL-запроса.
Пример
Продемонстрируем практическое применение функции при формировании полного URL-адреса с параметрами запроса:
package main
import (
"fmt"
"net/url"
)
func main() {
baseURL := "https://example.com/search"
query := "golang tutorial"
encodedQuery := url.QueryEscape(query)
fullURL := baseURL + "?q=" + encodedQuery
fmt.Println(fullURL)
}
Результат выполнения кода:
"https://example.com/search?q=golang+tutorial"
Смотрите также
-
функцию
url.QueryUnescape,
которая выполняет обратное преобразование - декодирование строки -
функцию
url.PathEscape,
которая экранирует строку для использования в пути URL -
функцию
url.PathUnescape,
которая декодирует экранированную строку из пути URL -
тип
url.Values,
который предоставляет удобные методы для работы с параметрами запроса