Функция url.PathEscape

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

Синтаксис

gourl.PathEscape(s string) string

Пример

Давайте закодируем простую строку с пробелами для использования в пути URL:

gopackage main

import (
  "fmt"
  "net/url"
)

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

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

go"hello%20world"

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  res := url.PathEscape("user/profile/name@domain.com")
  fmt.Println(res)
}

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

go"user/profile/name@domain.com"

Пример

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

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  res := url.PathEscape("привет мир")
  fmt.Println(res)
}

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

go"%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80"

Пример

Давайте закодируем строку с символом '#' и посмотрим на результат:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  res := url.PathEscape("section#top")
  fmt.Println(res)
}

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

go"section%23top"

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

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