Найти - Пользователи
Полная версия: Django 1.3 кодировка
Начало » Django » Django 1.3 кодировка
1
apologize828
Привет, Всем! В 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’
Так вот подскажите в чем причина?
apologize828
решил проблему так:
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB