使用cyryllic时出现UnicodeDecodeError

问题描述

| 我有一个仅包含的模块(这是唯一的示例。问题出在更大的模块中):
# -*- 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。我必须更改以正确执行此模块     

解决方法

该模块不是问题,PyCharm似乎是一个问题。它显然会读取您的文件,并假定它为cp1250,即使将其指定为utf-8也是如此。因此,这是PyCharm中的错误。 它应以二进制文件形式打开文件,读取第一行以查看其是否具有编码,在其他情况下,应假定其为UTF-8。 (尽管实际上应该假定它在Python 2下为ASCII,但UTF-8足够了)。     ,在PyCharm中,您可以在[设置](CTRL + ALT + S)|文件编码。那应该工作。