Найти - Пользователи
Полная версия: Кириллица в запросе
Начало » Центр помощи » Кириллица в запросе
1
exeplor
Python принимает слова на русском языке, если эти слова вывести на экран, получаются каракули, если эти слова записать в базу, получится что то типу: “u043au0438u0440u0438u043bu0438u0446u0430”. База настроена на utf8, проблема в питоне. Буду благодарен за помощь!
Андрей Светлов
Конечно, проблема в питоне!
А вы что думали - в ваших кривых руках?
Попробуйте скачать питон с правильного, беспроблемного сайта.
exeplor
Андрей Светлов, меня удивляют ваши ответы. Хорошо, переустановка питона с “беспроблемного сайта” не дала результата. Запись в базу идет точно такая же как и была…
slav0nic
какие вопросы - такие и ответы. Да и этот вопрос в Top-тем
http://docs.python.org/howto/unicode.html
Андрей Светлов
exeplor, меня в свою очередь безмерно удивил вопрос.
Не получается вывести на экран (консоль или GUI?) русский текст (каким образом задан?).
Какая версия Питона?
Где код?
Потому что у меня все работает отлично!

Дальше. Текст некорректно пишется в базу данных.
Какая база? Как пишете? Как поняли, что текст не записался?

А после всего просите о помощи.

Для меня вопрос звучит примерно так: “Я написал программу, а она не работает. Помогите!”
exeplor
Нашел причину такой безобразной кодировки. Оказывается причина в парсинге текста JSON модулем! Питон принимает значение в формате json, модуль парсит его, но при парсинге кириллицы происходит вот такое.
Андрей Светлов
Да ну? Отлично все работает. 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
Спасибо.
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