Функция uri_to_iri

Функция uri_to_iri преобразует ASCII-строку URI в IRI (Internationalized Resource Identifier) с использованием UTF-8 декодирования. Она применяется к строкам, содержащим процентное кодирование, и возвращает человекочитаемую строку с символами Unicode. Функция обрабатывает как путь URI, так и строку запроса, декодируя все процентно-закодированные последовательности байтов. В качестве аргумента принимает строку URI.

Синтаксис

pythonfrom django.utils.encoding import uri_to_iri

uri_to_iri(uri)

Пример

Давайте преобразуем URI с кириллическими символами в IRI:

pythonfrom django.utils.encoding import uri_to_iri

uri = '/articles/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82/'
iri = uri_to_iri(uri)
print(iri)

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

python"/articles/привет/"

Пример

Давайте обработаем URI с пробелами и специальными символами:

pythonfrom django.utils.encoding import uri_to_iri

uri = '/search?q=%D0%94%D0%B6%D0%B0%D0%BD%D0%B3%D0%BE+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0'
iri = uri_to_iri(uri)
print(iri)

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

python"/search?q=Джанго+разработка"

Пример

Давайте преобразуем URI с нелатинскими символами в пути:

pythonfrom django.utils.encoding import uri_to_iri

uri = '/user/%E6%97%A5%E6%9C%AC%E8%AA%9E/profile/'
iri = uri_to_iri(uri)
print(iri)

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

python"/user/日本語/profile/"

Пример

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

pythonfrom django.utils.encoding import uri_to_iri

uri = '/%FF/%FE/'
iri = uri_to_iri(uri)
print(iri)

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

python"/�/�/"

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

  • функция iri_to_uri,
    которая выполняет обратное преобразование IRI в URI
  • функция force_str,
    которая принудительно преобразует объект в строку
  • функция smart_str,
    которая интеллектуально преобразует объект в строку
  • функция slugify,
    которая преобразует строку в URL-дружественный слаг