Функция url.PathUnescape

Функция url.PathUnescape выполняет декодирование URL-пути, преобразуя процентно-кодированные символы обратно в их исходный вид. В первый параметр функция принимает строку с закодированным URL-путем, а возвращает декодированную строку и ошибку, если декодирование невозможно. Эта функция является обратной к url.PathEscape и обычно используется для обработки путей, полученных от клиентов или из внешних источников.

Синтаксис

gourl.PathUnescape(encodedPath string) (string, error)

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  encoded := "path%20with%20spaces"
  res, err := url.PathUnescape(encoded)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(res)
}

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

go"path with spaces"

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

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

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

go"привет"

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  encoded := "invalid%xy"
  res, err := url.PathUnescape(encoded)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

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

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

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