Почему только 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:utf-8

Мне удалось устранить вашу ошибку, указав кодировку в верхней части файла. В частности, добавьте эту строку в начало файла:

      # -*- coding: cp1252 -*-

По умолчанию python будет использовать ascii в качестве стандартной кодировки, но эта строка меняет кодировку на cp1252. Стандарт кодировки cp1252 используется для многих европейских языков, включая арабский. Похоже, что кодировка по умолчанию для японских символов - shift-jis, но я этого не пробовал.

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