使用cyrillic时的UnicodeDecodeError

时间:2011-05-24 10:25:14

标签: python encoding pycharm

我有一个仅包含的模块(这是唯一的例子。问题在于更大的模块):

# -*- 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。我必须改变以正确执行此模块

2 个答案:

答案 0 :(得分:5)

那个模块不是问题,它似乎是PyCharm的一个问题。它显然是读取你的文件,并假设它是cp1250,即使它被指定为utf-8。所以这是PyCharm中的一个错误。

它应该以二进制文件打开文件,读取第一行以查看它是否有编码,在其他情况下它应该假定它是UTF-8。 (虽然它应该真的假设它在Python 2下是ASCII,但是UTF-8已经足够了)。

答案 1 :(得分:0)

在PyCharm中,您可以在设置中指定UTF-8编码( CTRL + ALT + S )|文件编码。这应该有用。