Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 21, 2008 22:35:02

Alexsss
От:
Зарегистрирован: 2008-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

Проблема в том, что я из интернета загружаю страничку. Она в cp1251. Так как обрабатывать её в этой кодировке довольно проблематично, то её нужно перекодировать в utf-8. Вопрос: как?



Офлайн

#2 Ноя. 21, 2008 23:12:02

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

Сохранить в утф или обрабатывать в программе в юникоде?



Офлайн

#3 Ноя. 21, 2008 23:23:07

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как файл в кодировке 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)
RTFM, в конце концов же.

>>> help(str)
Ведь это так просто.

..bw



Отредактировано (Ноя. 22, 2008 00:18:36)

Офлайн

#4 Ноя. 22, 2008 02:57:42

Alexsss
От:
Зарегистрирован: 2008-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

Спасибо)))

bw
Ведь это так просто.
На то я и чайник!



Офлайн

#5 Ноя. 22, 2008 03:30:53

SvartalF
От:
Зарегистрирован: 2008-06-29
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

Alexsss, на то вы чайник, чтобы учиться, а не чтобы перекладывать всю работу на других.



Офлайн

#6 Ноя. 22, 2008 03:54:18

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Как файл в кодировке cp1251 сохранить в utf-8

Или более быстрый и менее затратный для памяти вариант, пригодный для очень больших файлов. Главное, чтобы переносы строк были…

f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
f.write(line.decode('cp1251').encode('utf8'))
P.S. Насколько я помню, open теперь использовать некошерно.



Офлайн

#7 Ноя. 23, 2008 00:47:20

plishas
От:
Зарегистрирован: 2008-11-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

если перекодировать нужно вручную (не автоматически т.е. не в скрипте),
то можно использовать текстовой редактор: http://notepad-plus.sourceforge.net/ru/site.htm
также этот редактор удобно использовать просто для написания кода…



Офлайн

#8 Ноя. 23, 2008 02:41:48

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как файл в кодировке cp1251 сохранить в utf-8

> то можно использовать текстовой редактор
А еще можно использовать iconv :-).

..bw



Отредактировано (Ноя. 23, 2008 02:42:30)

Офлайн

#9 Янв. 14, 2011 17:21:55

-=<fantom>=-
От:
Зарегистрирован: 2006-08-12
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

ZZZ
Или более быстрый и менее затратный для памяти вариант, пригодный для очень больших файлов. Главное, чтобы переносы строк были…
f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
f.write(line.decode('cp1251').encode('utf8'))
P.S. Насколько я помню, open теперь использовать некошерно.
Вообще-то, в последней строке с точность наоборот:
f = file("utf8.html", "wb")
for line in file("cp1251.html", "rb"):
f.write(line.decode('utf8').encode('cp1251'))
По крайней мере, в PortablePython 2.5



Офлайн

#10 Янв. 14, 2011 17:30:32

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как файл в кодировке cp1251 сохранить в utf-8

-=<fantom>=-, зачем тему поднимать двухлетней давности?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version