Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2010 19:37:24

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод unicode

Доброго времени суток!
Из джанго бук

>>> from django.template import Context, Template

>>> t = Template(u'Меня зовут {{ name }}.')

>>> c = Context({'name': u'Стефан'})

>>> t.render(c)

u'Меня зовут Стефан.'
у меня же вывод вот такой
>>> from django.template import Context, Template
>>> t = Template(u'Меня зовут {{ name }}.')
>>> c = Context({'name': u'Стефан'})
>>> t.render(c)
u'\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0421\u0442\u0435\u04
44\u0430\u043d.'
Почему так?
думал что дело в настройках джанги,добавил
DEFAULT_CHARSET= 'utf-8'
LANGUAGE_CODE = 'ru'
толку никакого



Офлайн

#2 Дек. 9, 2010 19:51:53

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

вывод unicode

>>> print t.render©
и будет вам счастье



Офлайн

#3 Дек. 9, 2010 20:32:46

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод unicode

Андрей Светлов
>>> print t.render©
и будет вам счастье
Согласен, так работает, но мне нужен именно вот такой вывод u'Меня зовут Стефан.'
Как быть?



Офлайн

#4 Дек. 9, 2010 20:55:45

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

вывод unicode

>>> t.render©
аналогичен
>>> print (repr(t.render©))
Так работает консоль Питона.
repr преобразует строку так, чтобы она содержала только ASCII символы.
Всё остальное заменяется на коды.

Явное указание
>>> print (repr(t.render©))
Печатает в кодировке консоли.

На самом деле строка не меняется, вы уже получили в t.render© всё, что нужно.
Используйте значение дальше - нет проблем.

Вопрос только в формате вывода. Считайте это фичей.



Офлайн

#5 Дек. 9, 2010 21:07:25

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод unicode

Андрей Светлов
>>> t.render©
аналогичен
>>> print (repr(t.render©))
Так работает консоль Питона.
repr преобразует строку так, чтобы она содержала только ASCII символы.
Всё остальное заменяется на коды.

Явное указание
>>> print (repr(t.render©))
Печатает в кодировке консоли.

На самом деле строка не меняется, вы уже получили в t.render© всё, что нужно.
Используйте значение дальше - нет проблем.

Вопрос только в формате вывода. Считайте это фичей.
спасибо:)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version