Поиск по этому блогу

четверг, 13 октября 2011 г.

django percent-encoded кириллица в ссылках при использовании ajax jquery.

Задача - из ссылки в кириллице, которая приходит в виде %D%0 получить удобочитаемый текст на кириллице.


Выдаёт ссылку ajax jquery строкой в шаблоне:
    abc = $('.name').serialize(),
    $("#itog").load('/book_added1/',{datta:abc});


Получает ссылку код в views.py
catch3 = request.POST['datta']

Здесь как раз и получаем краказябры по-научному именуемые percent-encoded >>  %D%0 и т.д.
Дальше - нормализуем utf , используя модуль unidecode  -:

from unidecode import unidecode
tempest = unidecode(catch3)

И получаем нормальную кириллицу с помощью модуля urllib:

catch2 = urllib.url2pathname(tempest)

На выходе получаем строку на кириллице. Но там будут заменены пробелы на плюсы типа:

Книжка+-+раскрасска


Исправляем это безобразие:

name =catch2.replace('+',' ')

И получаем Книжка+-+раскрасска >> Книжка - раскрасска

Всё!

P.s. модуль unidecode ставим по этой ссылке >>  http://pypi.python.org/pypi/Unidecode/

Комментариев нет:

Отправить комментарий