2011-05-24 1 views
3

У меня есть модуль, который содержит только (. Это только пример, проблема находится в гораздо больше модуль):UnicodeDecodeError при использовании Cyryllic

# -*- coding: utf-8 -*- 
"януари" 

Хотя исполнение я получаю:

File "C:\Program Files\JetBrains\PyCharm 107.130\helpers\pydev\pydevd.py", line 1184, in <module> 
    debugger.run(setup['file'], None, None) 
    File "C:\Program Files\JetBrains\PyCharm 107.130\helpers\pydev\pydevd.py", line 947, in run 
    line = stream.readline() #Should not raise an exception even if there are no more contents 
    File "C:\Python32\lib\encodings\cp1250.py", line 23, in decode 
    return codecs.charmap_decode(input,self.errors,decoding_table)[0] 
UnicodeDecodeError: 'charmap' codec can't decode byte 0x83 in position 31: character maps to <undefined> 

Я использую польский windows xp и python 3.2. Что я должен изменить для правильного выполнения этого модуля

ответ

4

Этот модуль не является проблемой, это, похоже, проблема с PyCharm. Он, по-видимому, читает ваш файл и предполагает, что он cp1250, даже если он указан как utf-8. Так что это ошибка в PyCharm.

Он должен открыть файл как двоичный файл, прочитать первую строку, чтобы узнать, есть ли у него кодировка, в другом случае он должен считать UTF-8. (Хотя на самом деле предполагается, что это ASCII под Python 2, но UTF-8 достаточно хорош).

0

В PyCharm можно указать кодировку UTF-8 в настройках (CTRL +ALT + S) | Кодировки файлов. Это должно сработать.

+1

К сожалению, это не так: / – user278618