UnicodeEncodeError: ascii при желании использовать юникод - PullRequest
0 голосов
/ 12 марта 2011

Я пытаюсь что-то вроде этого:

outFile = open("file.txt", "wt",encoding='utf-8')
outFile.write(str(sentence))
outFile.close()

и получаю ошибку:

UnicodeEncodeError: кодек «ascii» не может кодировать символ »/x4e'.

почему используется кодировщик ascii?

Прав ли я, говоря, что моя строка (str (предложение)) написана в юникоде?Тогда почему он не просто кодируется как utf-8 при записи в файл?Этот код не дает исключения при запуске в Ubuntu и Windows, за исключением случаев, происходящих в Mac OS X.

Мне кажется, что ascii по умолчанию используется где-то на моем Mac, хотя я явно заявляю об использовании utf-8

Пожалуйста, помогите,

Барри

1 Ответ

0 голосов
/ 12 марта 2011

str() возвращает строку yes. И str будет кодироваться при написании, да. Я не совсем уверен, почему используется кодировка ascii (это кодировка по умолчанию в Python 2, но не в Python 3), но я еще менее уверен, почему вы делаете str(sentence). Если вы хотите декодировать байты, которые вы не используете str(), вы используете .decode(). Итак, начните с удаления вызова str().

Вы не даете полный ответ, но я предполагаю, что это ошибка str(sentence).

...