Форум сайта python.su
1
Всем лучи света.
Возникла проблема преобразования строки в юникод. Тащу с сайта контент, получаю переменную вида:
s = '\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435' ('Тестовое сообщение') >>> s '\\u0422\\u0435\\u0441\\u0442\\u043e\\u0432\\u043e\\u0435 \\u0441\\u043e\\u043e\ \u0431\\u0449\\u0435\\u043d\\u0438\\u0435' >>> s[0] '\\' >>> s[1] 'u' >>> s[2] '0'
Офлайн
88
print eval("u'%s'" % '\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435')
Офлайн
16
>>> s = u'\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435' >>> s 'Тестовое сообщение'
Отредактировано alexbadaloff (Июнь 12, 2013 16:05:32)
Офлайн
88
dimy44на случай
зачем eval?
>>> s[0] '\\' >>> s[1] 'u' >>> s[2] '0'
Офлайн
88
VadimR, если получены unicode данные, тогда по мере необходимости нужно пользоваться методами encode/decode для преобразования их в строку/из строки.
Отредактировано Shaman (Июнь 12, 2013 16:21:59)
Офлайн
1
Дело в том что данные на странице отображаются как раз в виде:
\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435
Отсюда и гемор
Офлайн
32
Наверно, чуть ли не каждый месяц этот вопрос тут задается.
>>> s = '\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435' >>> s '\\u0422\\u0435\\u0441\\u0442\\u043e\\u0432\\u043e\\u0435 \\u0441\\u043e\\u043e\\u0431\\u0449\\u0435\\u043d\\u0438\\u0435' >>> print s.decode('unicode_escape') Тестовое сообщение
Офлайн