exeplor
Дек. 8, 2010 11:24:02
Python принимает слова на русском языке, если эти слова вывести на экран, получаются каракули, если эти слова записать в базу, получится что то типу: “u043au0438u0440u0438u043bu0438u0446u0430”. База настроена на utf8, проблема в питоне. Буду благодарен за помощь!
Андрей Светлов
Дек. 8, 2010 16:35:57
Конечно, проблема в питоне!
А вы что думали - в ваших кривых руках?
Попробуйте скачать питон с правильного, беспроблемного сайта.
exeplor
Дек. 8, 2010 16:46:56
Андрей Светлов, меня удивляют ваши ответы. Хорошо, переустановка питона с “беспроблемного сайта” не дала результата. Запись в базу идет точно такая же как и была…
slav0nic
Дек. 8, 2010 16:53:27
какие вопросы - такие и ответы. Да и этот вопрос в Top-тем
http://docs.python.org/howto/unicode.html
Андрей Светлов
Дек. 8, 2010 17:39:54
exeplor, меня в свою очередь безмерно удивил вопрос.
Не получается вывести на экран (консоль или GUI?) русский текст (каким образом задан?).
Какая версия Питона?
Где код?
Потому что у меня все работает отлично!
Дальше. Текст некорректно пишется в базу данных.
Какая база? Как пишете? Как поняли, что текст не записался?
А после всего просите о помощи.
Для меня вопрос звучит примерно так: “Я написал программу, а она не работает. Помогите!”
exeplor
Дек. 8, 2010 21:13:51
Нашел причину такой безобразной кодировки. Оказывается причина в парсинге текста JSON модулем! Питон принимает значение в формате json, модуль парсит его, но при парсинге кириллицы происходит вот такое.
Андрей Светлов
Дек. 8, 2010 21:21:04
Да ну? Отлично все работает. Python 2.6
>>> import json
>>> a = json.dumps({'a': 'русские буквы'})
>>> a
'{"a": "\\u0440\\u0443\\u0441\\u0441\\u043a\\u0438\\u0435 \\u0431\\u0443\\u043a\\u0432\\u044b"}'
>>> b = json.loads(a)
>>> b
{u'a': u'\u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b'}
>>> print b['a']
русские буквы
>>>
exeplor
Дек. 8, 2010 21:35:14
Спасибо.