Форум сайта python.su
							
  0  
								
								Проблема в том, что я из интернета загружаю страничку. Она в cp1251. Так как обрабатывать её в этой кодировке довольно проблематично, то её нужно перекодировать в utf-8. Вопрос: как?
Офлайн
							
  3  
								
								Сохранить в утф или обрабатывать в программе в юникоде?
Офлайн
							
  20  
								
								text_in_cp1251 = open('cp1251.html', 'rb').read()
text_in_unicode = text_in_cp1251.decode('cp1251')
text_in_utf8 = text_in_unicode.encode('utf8')
open('utf8.html', 'wb').write(text_in_utf8)>>> help(str)
Отредактировано (Ноя. 22, 2008 00:18:36)
Офлайн
							
  0  
								
								Спасибо)))
bwНа то я и чайник!
Ведь это так просто.
Офлайн
							
  0  
								
								Alexsss, на то вы чайник, чтобы учиться, а не чтобы перекладывать всю работу на других.
Офлайн
							
  26  
								
								Или более быстрый и менее затратный для памяти вариант, пригодный для очень больших файлов. Главное, чтобы переносы строк были…
f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
    f.write(line.decode('cp1251').encode('utf8'))Офлайн
							
  0  
								
								если перекодировать нужно вручную (не автоматически т.е. не в скрипте),
то можно использовать текстовой редактор: http://notepad-plus.sourceforge.net/ru/site.htm
также этот редактор удобно использовать просто для написания кода…
Офлайн
							
  20  
								
								> то можно использовать текстовой редактор
А еще можно использовать iconv :-).
..bw
Отредактировано (Ноя. 23, 2008 02:42:30)
Офлайн
							
  0  
								
								ZZZВообще-то, в последней строке с точность наоборот:
Или более быстрый и менее затратный для памяти вариант, пригодный для очень больших файлов. Главное, чтобы переносы строк были…P.S. Насколько я помню, open теперь использовать некошерно.f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
f.write(line.decode('cp1251').encode('utf8'))
f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
    f.write(line.decode('utf8').encode('cp1251'))Офлайн
							
  3  
								
								-=<fantom>=-, зачем тему поднимать двухлетней давности?
Офлайн