Форум сайта python.su
Проблема в том, что я из интернета загружаю страничку. Она в cp1251. Так как обрабатывать её в этой кодировке довольно проблематично, то её нужно перекодировать в utf-8. Вопрос: как?
Офлайн
Сохранить в утф или обрабатывать в программе в юникоде?
Офлайн
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)
Офлайн
Спасибо)))
bwНа то я и чайник!
Ведь это так просто.
Офлайн
Alexsss, на то вы чайник, чтобы учиться, а не чтобы перекладывать всю работу на других.
Офлайн
Или более быстрый и менее затратный для памяти вариант, пригодный для очень больших файлов. Главное, чтобы переносы строк были…
f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
f.write(line.decode('cp1251').encode('utf8'))
Офлайн
если перекодировать нужно вручную (не автоматически т.е. не в скрипте),
то можно использовать текстовой редактор: http://notepad-plus.sourceforge.net/ru/site.htm
также этот редактор удобно использовать просто для написания кода…
Офлайн
> то можно использовать текстовой редактор
А еще можно использовать iconv :-).
..bw
Отредактировано (Ноя. 23, 2008 02:42:30)
Офлайн
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'))
Офлайн
-=<fantom>=-, зачем тему поднимать двухлетней давности?
Офлайн