Страшные ошибки кодирования Python, как их остановить? - PullRequest
1 голос
/ 17 мая 2010

Они мучили меня бесконечно. Зачем? Кажется, что моя консоль не может обработать кодировку. Я понимаю, что мой браузер и текстовый процессор могут справиться с этим. У меня нет главного списка всех возможных персонажей, от которых он захлебывается. Каков наилучший способ облегчить это без изменения моих данных?

'charmap' codec can't encode character u'\xca'

1 Ответ

2 голосов
/ 17 мая 2010

Вам необходимо выяснить кодировку вашей консоли (какая система, ОС и т. Д.?) Объясняю:

Есть еще одна группа кодировок (так называемые charmap кодировки), которые выбрать другое подмножество всех кодовые точки Unicode и как они кодовые точки сопоставляются с байтами 0x0-0xff. Чтобы увидеть, как это делается просто откройте, например, Кодирование / cp1252.py (которая является кодировкой, которая используется в первую очередь на винде). Есть строковая константа с 256 символами который показывает вам, какой персонаж отображается на какое значение байта.

Все эти кодировки могут только кодировать 256 из 65536 (или 1114111) кодовые точки определены в юникоде.

Т.е. он идентифицирует набор возможных кодеков, а не конкретный.

Как только вы узнаете, что ваша консоль поддерживает кодек с именем 'foobar', измените ваши операторы, которые теперь

print(someunicode)

в

print(someunicode.encode('foobar'))
...