Функция url.QueryEscape

Функция url.QueryEscape преобразует строку в формат, пригодный для включения в состав URL-запроса. Она выполняет процентное кодирование (URL encoding) всех специальных символов, которые недопустимы в значениях параметров запроса. В первый параметр функции передается исходная строка, которую необходимо экранировать.

Синтаксис

gourl.QueryEscape(s string) string

Пример

Давайте закодируем строку, содержащую пробелы и специальные символы:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  res := url.QueryEscape("hello world")
  fmt.Println(res)
}

Результат выполнения кода:

go"hello+world"

Обратите внимание, что пробел в строке заменяется на символ +, так как именно такой способ кодирования пробела предусмотрен стандартом для значений параметров URL-запроса.

Пример

Закодируем строку с несколькими специальными символами:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  res := url.QueryEscape("name=John&age=30")
  fmt.Println(res)
}

Результат выполнения кода:

go"name%3DJohn%26age%3D30"

Символы = и & были заменены на соответствующие процентные последовательности, чтобы они не интерпретировались как разделители параметров при формировании URL-запроса.

Пример

Продемонстрируем практическое применение функции при формировании полного URL-адреса с параметрами запроса:

gopackage 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)
}

Результат выполнения кода:

go"https://example.com/search?q=golang+tutorial"

Смотрите также

  • функцию url.QueryUnescape,
    которая выполняет обратное преобразование - декодирование строки
  • функцию url.PathEscape,
    которая экранирует строку для использования в пути URL
  • функцию url.PathUnescape,
    которая декодирует экранированную строку из пути URL
  • тип url.Values,
    который предоставляет удобные методы для работы с параметрами запроса