Форум сайта python.su
0
Подскажите как преобразовать такой текст в читабельный:
u'\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Projity, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u043c\u0438
З.Ы. Пользовался поиском по сайту ничего не нашел.
Офлайн
2
Офлайн
0
Офлайн
0
Типичная проблема с кодировками.
Попробуйте так
s = str(s)
s = s.encode(кодировка)
Офлайн
А по-моему надо просто print использовать
>>> foo = u'фыва'
>>> foo
u'\u0444\u044b\u0432\u0430'
>>> print foo
фыва
>>> print {'foo': foo}
{'foo': u'\u0444\u044b\u0432\u0430'}
Офлайн
0
Добрый день,
Анналогичная проблема (не стал заводить отдельный топик)
Парсю вебсайт через lxml (2ой день пишу на pythonе :-) ) - Context-type у страницы не задан.
Через txt1 = doc.xpath('/html/body/блабла') получаю текст в unicode.
Вернее не совсем текст а (type(s), s) <type ‘list’>
Через самодельные костыли (кстати а как это сделать красиво или правильно?) перевожу в <type ‘unicode’> u'\u0441\u043f\u0435\u0446-\u043f\u0440\u043e\u0435\u043a\u0442
Далее вопрос как unicode перевести в банальный str c русским текстом
Игрался # coding: cp1251
Пробовал по разному:
print type(s2),s2.encode('cp866')
print type(s2),s2.encode('cp1251')
print type(s2),s2.encode('utf-8')
print s2.encode()
print s2.decode()
print s2.decode('cp866')
print s2.decode('cp1251')
print s2.decode('windows-1251').encode()
Не выходит каменный цветок.
Причем если банально назначить переменную
s=u'\u0451\u044f\u0445\u040e-\u044f\u0401\u044e\u0445\u044a\u0404'
s1=s.encode ('cp866')
print s1
То все удачно получается.
Заранее спасибо
Офлайн
22
lEXA
Далее вопрос как unicode перевести в банальный str c русским текстом
u_str = u'Банальный юникод' s_str = u_str.encode('utf-8') # не юникод строка, в кодировке utf-8
Отредактировано ilnur (Апрель 30, 2013 13:23:11)
Офлайн
0
Спасибо за ответ но не помогает
Делаю:
print '----' s_str = s2.encode('utf-8') print type(s_str), s_str print '----'
<type 'str'> u'\u0441\u043f\u0435\u0446-\u043f\u0440\u043e\u0435\u043a\u0442
# coding: cp1251
Офлайн
22
Python 2.7.3 (default, Sep 26 2012, 21:51:14) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a=u'привет' >>> a u'\u043f\u0440\u0438\u0432\u0435\u0442' >>> print a привет >>> print type(a) <type 'unicode'> >>> b=a.encode('utf-8') >>> b '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82' >>> print b привет >>> print type(b) <type 'str'> >>>
Отредактировано ilnur (Апрель 30, 2013 15:24:51)
Офлайн
173
lEXAВот именно, список, а не текст.
Через txt1 = doc.xpath('/html/body/блабла') получаю текст в unicode.
Вернее не совсем текст а (type(s), s) <type ‘list’>
In [2]: lst = [u'привет', u'мир'] In [3]: print lst [u'\u043f\u0440\u0438\u0432\u0435\u0442', u'\u043c\u0438\u0440'] In [4]: print lst[0] привет In [5]: print lst[1] мир
Офлайн