Форум сайта python.su
Добрый день!
Недавно столкнулся со следующей проблемой - мне нужно записать unicode строку в файл, но как выяснилось, python не хочет записывать в файл что-либо кроме однобайтных кодировок, в следствие чего получаем следующий фейл:
Traceback (most recent call last):
File "brain.py", line 431, in <module>
bot.chat('temp','Привет!')
File "brain.py", line 407, in chat
log.write(tmp)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-28: ordinal not in range(128)
Оболочка завершила работу 1
Офлайн
Про атавизмы и однобайтные кодировки это вы сгоряча…
Пишите utf-8, кто мешает?
Офлайн
bot.chat('temp','Привет!').encode('utf-8')
Офлайн
Прошу прощения. Нашёл ответ сам. Проблема решается следующим образом:
log.write(tmp.encode('utf-8'))
Офлайн
corpseв третьем можно файл открыть в определённой кодировке
Довольно странный атавизм для такого прогрессивного языка как python.
Офлайн
Во втором есть codecs.open
Офлайн