Почему только VS Code показывает «SyntaxError: Код не-UTF-8, начинающийся с '\xe0'» при чтении иностранных символов, но только сверх определенной длины?
Так что это странный вопрос, но я пытаюсь обработать бенгальские символы, такие как খ (я также пробовал с арабским و и японским 片) в VS Code, и все шло хорошо, пока внезапно я не получил эту ошибку:
SyntaxError: код, отличный от UTF-8, начинается с '\xe0' в файле ..., но не объявлена кодировка; см. http://python.org/dev/peps/pep-0263/ для подробностей.
Примечание: при использовании арабского символа
و
и японский характер
片
, У меня были похожие ошибки, но с разными обозначениями - «\xd9» и «\ xe7» соответственно.
Мой код не проблема, потому что он просто
text = [long foreign language text]
и это само по себе дает мне ошибку. Однако в ходе некоторых экспериментов я заметил, что это вызывало ошибку только в том случае, если я превышал 167 символов иностранного языка (для японского тоже, но для арабского пороговое значение было выше).
Чтобы найти этот предел, я создал строку (без пробелов) всего খ и продолжал увеличивать количество символов, пока не получил ошибку. На 167 символах (согласно этому сайту подсчета символов ) все работало нормально. Но когда я добавил еще один символ (всего 168 символов), возникла указанная выше ошибка.
Общие ответы на этот вопрос в других сообщениях stackoverflow, таких как этот, и это , похоже, не работают для меня. Скорее всего, это не похоже на проблему с кодированием. Если это была проблема с кодировкой, она должна была выдать ошибку независимо от длины строки, верно?
Я попытался воспроизвести это в Spyder IDE, и, похоже, у него нет таких проблем или ограничений. Это наводит меня на мысль, что это проблема VS Code. Кто-нибудь знаком с такими проблемами или знает, как их решать в VS Code?
Мне нравится работать в VS Code, поэтому мне не нужно ничего менять только для этого.
Весь мой код, если это важно:
# (167 Characters) Gives no error in VS Code
text = "খখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখ"
print(text)
# (168 Characters) Gives error in VS Code but not in Spyder IDE
text = "খখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখখ"
print(text)
2 ответа
Мне удалось устранить вашу ошибку, указав кодировку в верхней части файла. В частности, добавьте эту строку в начало файла:
# -*- coding: cp1252 -*-
По умолчанию python будет использовать ascii в качестве стандартной кодировки, но эта строка меняет кодировку на cp1252. Стандарт кодировки cp1252 используется для многих европейских языков, включая арабский. Похоже, что кодировка по умолчанию для японских символов - shift-jis, но я этого не пробовал.