Я пытаюсь написать «строку» в файл и получить следующее сообщение об ошибке:Как написать объект unicode в файл в Python?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xcd' in position 6: ordinal not in range(128)
Я попытался следующие методы:
print >>f, txt
print >>f, txt.decode('utf-8')
print >>f, txt.encode('utf-8')
Ни один из них не работает. У меня такое же сообщение об ошибке.
Какова идея кодирования и декодирования? Если у меня есть объект unicode, я могу записать его непосредственно в файл или мне нужно преобразовать его в строку?
Как я могу узнать, какая трединга используется? Как я могу узнать, является ли это utf-8 или ascii или что-то еще?
ДОБАВЛЕНО
Я думаю, что я только что удалось сохранить строку в файл. print >>f, txt
а также print >>f, txt.decode('utf-8')
не работает но print >>f, txt.encode('utf-8')
работы. Я не получаю сообщение об ошибке, и я вижу китайских символов в моем файле.
И что это за строка? – EbraHim
@EbraHim, я думаю, что это объект юникода, потому что я получил строки, читая их следующим образом: 'для строки в io.open (fname, encoding =" utf8 "):' – Roman
@Roman для строки в io .open (fname, encoding = "utf8"): измените кодировку на utf-8 – Mani