Локализованный Windows, зараза, выплёвывает локализованные результаты работы утилит.
Потратил два часа на то, чтобы найти вхождение строкового литерала в этом результате.
Постфактум - все элементарно, но матов успел сложить стопочку...
Итак - пометки на полях:
1) Чтобы объявить строковой литерал кириллицей надо указать кодировку файла, иначе питончик падает с синтаксической ошибкой: SyntaxError: Non-ASCII character '\xcf' in file
Лечится добавлением в заголовок следующих строчек:
#!/usr/bin/python
# -*- coding: utf-8 -*-
2) Для сравнения строк необходимо их привести к одной кодировке:
В случае строкового литерала делаем так:
cyrillic_literal = 'Печатаемое имя:'.decode('cp1251')
А для внешних данных:
line = line.decode(sys.stdin.encoding)
Потратил два часа на то, чтобы найти вхождение строкового литерала в этом результате.
Постфактум - все элементарно, но матов успел сложить стопочку...
Итак - пометки на полях:
1) Чтобы объявить строковой литерал кириллицей надо указать кодировку файла, иначе питончик падает с синтаксической ошибкой: SyntaxError: Non-ASCII character '\xcf' in file
Лечится добавлением в заголовок следующих строчек:
#!/usr/bin/python
# -*- coding: utf-8 -*-
2) Для сравнения строк необходимо их привести к одной кодировке:
В случае строкового литерала делаем так:
cyrillic_literal = 'Печатаемое имя:'.decode('cp1251')
А для внешних данных:
line = line.decode(sys.stdin.encoding)
Комментариев нет:
Отправить комментарий