UnicodeEncodeError: кодек 'charmap' не может кодировать символ (в Python 3.3)

Когда я пытаюсь напечатать все символы ASCII в Python, только 127 печатаются, и я получаю ошибку с выводом после 127. Я не могу понять, что означает эта ошибка.

Пример:

t = list(range(0, 256))
for x in t:
    print(str(x) + ". " + chr(x))

Ошибка:

Traceback (most recent call last):
  File "D:\Study\Pedia\Python Book\6. Functions\2. Built-in functions\ord_chr.py", line 6, in <module>
    print(str(x) + ". " + str(chr(x)))
  File "C:\Python33\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 5: character maps to <undefined>

Примечание: я не могу показать вам полный вывод, потому что я не могу скопировать полный необработанный вывод из консоли возвышенного вывода. Не знаю настоящую причину, почему это не может быть скопировано.


2 ответа

Решение

ASCII включает определения для 128 символов (0 в 127).

\x80 (128) не включен там.

Когда я пытаюсь написать код на Windows, Python 2.7, он работает без исключения. Я должен был делать скриншоты, так как при копировании текста просто игнорировались эти расширенные символы ascii.

часть 1часть 2часть 3

Другие вопросы по тегам