python SyntaxError: проблема с кодировкой: windows -1255 с спецификацией - PullRequest
0 голосов
/ 06 марта 2020

Это мой простой код:

#!/usr/bin/env python
# -*- coding: windows-1255 -*-

str = "\u05dc\u05d9\u05d0\u05d5\u05e8"

print (str)

Не могли бы вы сказать мне, почему я получаю эту ошибку?

python SyntaxError: encoding problem: windows-1255 with BOM

Большое спасибо

1 Ответ

0 голосов
/ 06 марта 2020

Вы сохранили свой простой код в кодировке, которая явно включает в себя спецификацию - для редактора 21-го века, который, скорее всего, будет UTF-8. В вашей программе нет не 7-битных символов ASCII, поэтому в спецификации нет необходимости - но компьютеры, как известно, глупы и выполняют то, что вы просите. Но в верхней части вашего скрипта вы заявляете, что используете полностью кодированный тип - тот, который не использует спецификацию - и поэтому Python жалуется.

Тот факт, что у вас есть Unicode-строки в вашем скрипте, кстати, не имеют значения. Это также происходит, когда вы сохраняете простое

#!/usr/bin/env python
# -*- coding: windows-1255 -*-

x

и пытаетесь запустить его.

Это неожиданно, потому что анализ строки кодирования вверху Python уже пришлось читать и пропускать спецификацию. Но эта кодировка говорит о том, что не должно быть спецификации, поэтому, как правильно указывает Python, где-то должна быть ошибка.

Не ie в кодирование строки или сохранение без спецификации, и проблема исчезает. Если вы не можете выяснить, почему ваш редактор сохраняет данные таким образом, или не можете узнать, как правильно сохранить в правильной кодировке, измените строку вверху на

# -*- coding: utf-8 -*-

Очень хорошее обсуждение проблем с различные кодировки и Unicode Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без оправданий!) .

...