#python #кодировка #utf_8 #python_2x
С чем может бы связано непринятие русского языка во Втором питоне на некоторых машинах? Например на Fedora 22 после добавления в скрипт: # -*- coding: utf -*- проблема решалась, и русские буквы появлялись на экране. На CentOS 7 такой финт не проходит, ругается: SyntaxError: Non-ASCII character '\xd0' in file file.py on line 20, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Ругается он на первую попавшуюся функцию: def err(): print ("Укажите логин, Фамилия, Имя, Отчество") sys.exit(0) При этом пробовал строку: # -*- coding: utf -*- менять на: # -*- coding: utf-8 -*- не помогло. А на другой машине с такой же CentOS7, русский отображается нормально. Версия на CentOS7 - Python 2.7.5 (default, Jun 24 2015, 00:41:19) Версия на fedora 22 - Python 2.7.10 (default, Jul 5 2015, 14:15:43) Обновить версию на данный момент не представляется возможным, только через месяц, но это не важно. В чем проблема и как ее можно решить? Перейти на третью версию можно и, скорее всего, нужно, но сейчас именно по 2 вопрос.
Ответы
Ответ 1
гипотезы и общие соображения: согласно pep-у (ссылка есть и в самом вопросе) в поисках coding: кодировка просматриваются лишь первая и вторая строки файла. возможно, в начале файла есть bom-ы или в первые строки «затесались» другие нечитабельные символы, что можно обнаружить, просматривая файл побайтово, например, так: $ hexdump -C файл | less возможно, в начале файла присутствуют переводы строк «не той системы» (для unix-like должны быть \n), либо их смесь. как проверить — см. предыдущий пункт.
Комментариев нет:
Отправить комментарий