Найти - Пользователи
Полная версия: Python 2.7 вывод русских букв
Начало » Python для новичков » Python 2.7 вывод русских букв
1 2
evgenyivanov
У меня есть xml, в котором есть русские символы. Когда я вывожу его на экран print xml русские символы не отображаются, вместо них печатается, что-то непонятное. Как это побороть?
odnochlen
Может выложишь, что именно тебе выводится, а то телепаты в отпуске.
evgenyivanov
odnochlen
Может выложишь, что именно тебе выводится, а то телепаты в отпуске.
ZerG
Извечная проблема Виндаус и кодировки в терминале!
Смените кодировку в файле ХМЛ на cp866 и будет вам счастие.
Ну и погуглите на ту же тему !
odnochlen
В xml текст в кодировке utf8. Не знаю, зачем тебе его в читаемом виде выводить в консоль, но попробуй print xml.decode('utf8')
evgenyivanov
odnochlen
В xml текст в кодировке utf8. Не знаю, зачем тебе его в читаемом виде выводить в консоль, но попробуй print xml.decode('utf8')
Я в дальнейшем его обрабатываю. Те поля, что по английски работают, а те, что с русскими символами - сбоят.

import xml.dom.minidom
import urllib
f = urllib.urlopen('http://samstar.ucoz.ru/news/rss/')
st= f.read()
print f.read()
print ">>>", st.decode('utf8')
f.close()

Выдает ошибку. см. вложенный файл
odnochlen
В юникодной строке есть символы, которые не могут быть декодированы в кодировку консоли (cp866)
print st.decode('utf8').encode('cp866', 'ignore')
# или так
print unicode(st, 'utf8').encode('cp866', 'ignore')
evgenyivanov
odnochlen
В юникодной строке есть символы, которые не могут быть декодированы в кодировку консоли (cp866)
Спасибо. На печать русские буквы выводятся. Но дальнейшее использование хмл

import xml.dom.minidom
import urllib
f = urllib.urlopen('http://samstar.ucoz.ru/news/rss/')
st= f.read().decode('utf8').encode('cp866', 'ignore')
print st
#print ">>>", st.decode('utf8').encode('cp866', 'ignore')
par1 = xml.dom.minidom.parseString(st)
data = par1.getElementsByTagName('title')    
n= -1
for e in data:
    for t in e.childNodes:
		n = n +1
		if (n > 0):
			print t.data.decode('utf8')
f.close()
Причем, если я заменю тег на “link”, значение которого всегда - латиница, никакие ошибки не возникают.
odnochlen
Кодировать в cp866 нужно только для сосноли, для парсера это не надо.
pellon
простите, а что такое xml??
я видел файлы с таким фарматом. это както связано?

и чо такое парсер?
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