Функция url.QueryUnescape

Функция url.QueryUnescape используется для декодирования URL-строки, преобразуя процентные кодировки (например, %20 в пробел) обратно в обычные символы. В первый параметр мы передаем строку, которая содержит процентные кодировки, а функция возвращает декодированную строку и ошибку, если декодирование невозможно.

Синтаксис

gourl.QueryUnescape(str)

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  encoded := "hello%20world%21"
  res, err := url.QueryUnescape(encoded)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

go"hello world!"

Пример

Давайте декодируем строку с кириллическими символами в процентной кодировке:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  encoded := "%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82"
  res, err := url.QueryUnescape(encoded)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

go"Привет"

Пример

Давайте попробуем декодировать строку с некорректной процентной кодировкой, чтобы увидеть обработку ошибки:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  encoded := "hello%2"
  res, err := url.QueryUnescape(encoded)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

go"Error: invalid URL escape \"%2\""

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

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