Есть несколько моментов для рассмотрения.
Символ \ u2018 может появляться только как фрагмент представления строки Unicode в Python, например если ты пишешь:
>>> text = u'‘'
>>> print repr(text)
u'\u2018'
Теперь, если вы просто хотите аккуратно напечатать строку Unicode, просто используйте метод Unicode encode
:
>>> text = u'I don\u2018t like this'
>>> print text.encode('utf-8')
I don‘t like this
Чтобы убедиться, что каждая строка любого файла будет читаться как Unicode, вам лучше использовать функцию codecs.open
вместо просто open
, которая позволяет вам указать кодировку файла:
>>> import codecs
>>> f1 = codecs.open(file1, "r", "utf-8")
>>> text = f1.read()
>>> print type(text)
<type 'unicode'>
>>> print text.encode('utf-8')
I don‘t like this