Форум сайта python.su
0
Добрый день!
Столкнулся с проблемой перекодировки текста из UTF-8 в CP1251.
Задача такая: получаем html страничку из интернета(страничка в UTF-8), парсим её, результат записываем в текстовый файл в CP1251.
Насколько я понимаю алгоритм должен выглядеть следующим образом:
>>>page = opener.open(url).read()
>>>chunk = re.findall('<htmltag>(.+?)</htmltag>', page, re.S)[0]
>>>chunkUTF8 = chunk.decode('UTF-8')
>>>chunkCP1251 = chunkUTF8.encode('CP1251')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/encodings/cp1251.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 7641-7642: character maps to <undefined>
>>> error = chunkUTF8[7641:7642]
>>> error
u'\u3000'
>>>chunkUTF8fix = chunkUTF8fix.replace(u'\u3000', ' ')
>>>chunkCP1251 = chunkUTF8fix.encode('CP1251')
Офлайн
32
>>> u.encode('ascii', 'ignore')
'abcd'
>>> u.encode('ascii', 'replace')
'?abcd?'Офлайн
0
Спасибо большое за быстрый ответ!
Даже не ожидал, что все может быть так просто, ведь можно было обойтись help(''.encode) :)
Офлайн