В Python 2.x чтение файла UTF-8 может быть выполнено с использованием
open('one.dat').read().decode('utf-8')
или
codecs.open('one.dat', encoding='utf-8').read()
, оба из которых возвращают объект Python unicode
.Если вы хотите превратить str
(ASCII / двоичная строка) s
в unicode
, используйте s.decode('utf-8')
.
В Python 3.x просто наберите
open('one.dat').read()
или
open('one.dat', encoding='utf-8').read()
Идея состоит в том, что объект str
(Py2.x) или bytes
(Py3.x) содержит только двоичное представление строки в some кодирование без указания, какая это кодировка;метод decode
превращает это в правильную строку Unicode (unicode
в 2.x, str
в 3.x).
(Кстати, UTF-8 не является «двоичными данными»,это просто текст в кодировке, отличной от ASCII.)