Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 16, 2011 13:55:15

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Django 1.3 кодировка

Привет, Всем! В Django я новичек. По форуму поискал и ничего подходящего не нашел, чтобы решить проблему.
OS: windows 7
Вопрос такой есть форма:

<form action="/search-result/" method="get">
<input type="text" name="text_search">
<input type="submit" value="Поиск">
</form>
и ее обработчик:
def search_result(request):
if "text_search" in request.GET and request.GET["text_search"]:
message = "Вы искали %r" % request.GET["text_search"]
else:
message = "Заполните форму поиска."
return HttpResponse(message)
Все файлы сохранены в кодировке utf-8.
Когда в поле поиска ввожу например, hello, то получаю: Вы искали u'hello'
Когда в поле поиска ввожу привет, то получаю: Вы искали u'\u043f\u0440\u0438\u0432\u0435\u0442'

полазил по просторам интернета и там говорят что причина вроде в request.encoding:
проверил request.encoding выводит None - значит по умолчанию используется utf-8
также посмотрел QUERY_STRING = ‘text_search=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82’ -это же явно не есть гуд
в setting.py:
DEFAULT_CHARSET = ‘utf-8’
FILE_CHARSET = ‘utf-8’
Так вот подскажите в чем причина?



Офлайн

#2 Авг. 16, 2011 18:31:59

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Django 1.3 кодировка

решил проблему так:

def search_result(request):
if "text_search" in request.GET and request.GET["text_search"]:
message = u'Вы искали %s' %request.GET["text_search"]
else:
message = u"Заполните форму поиска."
return HttpResponse(message)
если я правильно понял, то Django везде использует объекты Unicode. Значит надо не забывать ставить везде -u



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version