Есть файл в UTF-8. Вывод на консоль работает замечательно, но при попытке перенаправиить в файл возникает ошибка.
$ locale
LANG=ru_RU.UTF-8
LC_CTYPE=“ru_RU.UTF-8”
LC_NUMERIC=“ru_RU.UTF-8”
LC_TIME=“ru_RU.UTF-8”
LC_COLLATE=“ru_RU.UTF-8”
LC_MONETARY=“ru_RU.UTF-8”
LC_MESSAGES=“ru_RU.UTF-8”
LC_PAPER=“ru_RU.UTF-8”
LC_NAME=“ru_RU.UTF-8”
LC_ADDRESS=“ru_RU.UTF-8”
LC_TELEPHONE=“ru_RU.UTF-8”
LC_MEASUREMENT=“ru_RU.UTF-8”
LC_IDENTIFICATION=“ru_RU.UTF-8”
LC_ALL=
# -*- coding: utf-8 -*-
data = open('test.htm').read().decode('utf-8')
print type(data) # <type 'unicode'>
print data # UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 229: ordinal not in range(128)