Как исправить ошибку «Неверная кодировка» в Python 3? - PullRequest
0 голосов
/ 01 июля 2019

Я создавал оболочку на основе python, в которой я использовал один символ латиницы-1: «└──>».Итак, я попробовал это:

~python 3.8
# -*- coding:  latin-1 -*-

input_prompt = input('''
└──>  ''')

Но это дало мне ошибку:

Invalid encoding 'latin-1'
Saving as 'UTF-8'

Почему это отображает это?Я пробовал код в Python 2.7 и ту же ошибку.Как это решить?

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

ОК, извините, ребята, но я обнаружил, что проблема заключалась в том, что я должен сначала закодировать этот символ в utf-8, который получит: 'âââ>>, а затем добавить заголовок. Поэтому я должен заменить эти символы на 'âââ>>.

0 голосов
/ 02 июля 2019

Строка приглашения не состоит из символов, которые могут быть представлены в латинице-1, следовательно, ошибка:

>>> s = '''└──>'''
>>> import unicodedata as ud
>>> for c in s:print(ud.name(c))
... 
BOX DRAWINGS LIGHT UP AND RIGHT
BOX DRAWINGS LIGHT HORIZONTAL
BOX DRAWINGS LIGHT HORIZONTAL
GREATER-THAN SIGN
>>> s.encode('latin-1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256)

Либо измените кодировку исходного файла на кодировку, которая может поддерживать эти символы (например, UTF-8), либо используйте только символы, которые можно закодировать как латинский-1.

...