Столкнулся с проблемой перекодировки текста из 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')