Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可怕的python编码错误,如何阻止它们?_Python_Unicode_Utf 8_Character Encoding - Fatal编程技术网

可怕的python编码错误,如何阻止它们?

可怕的python编码错误,如何阻止它们?,python,unicode,utf-8,character-encoding,Python,Unicode,Utf 8,Character Encoding,这些问题一直困扰着我。为什么?我的控制台似乎无法处理编码。我认为我的浏览器和文字处理器可以处理它。我没有一个包含所有可能的角色的主列表。在不修改数据的情况下缓解此问题的最佳方法是什么 'charmap' codec can't encode character u'\xca' 您需要找出控制台的编码(哪个系统、操作系统等?)-“charmap”对于编解码器来说是一个有点模糊的标识,如下所述: 还有另一组编码 (所谓的charmap编码) 选择一个不同的子集 unicode代码点以及它们是如何

这些问题一直困扰着我。为什么?我的控制台似乎无法处理编码。我认为我的浏览器和文字处理器可以处理它。我没有一个包含所有可能的角色的主列表。在不修改数据的情况下缓解此问题的最佳方法是什么

'charmap' codec can't encode character u'\xca'

您需要找出控制台的编码(哪个系统、操作系统等?)-
“charmap”
对于编解码器来说是一个有点模糊的标识,如下所述:

还有另一组编码 (所谓的charmap编码) 选择一个不同的子集 unicode代码点以及它们是如何 代码点映射到字节 0x0-0xff。看看这是怎么做到的 只需打开例如encodings/cp1252.py (这是一种使用的编码 主要是在Windows上)。有一个 256个字符的字符串常量 这会告诉你哪个角色是 映射到哪个字节值

所有这些编码只能进行编码 65536(或1114111)中的256个 用unicode定义的代码点

i、 例如,它确定了一组可能的编解码器,而不是一个特定的编解码器

一旦您知道您的控制台支持名为
'foobar'
的编解码器,请更改您现在使用的语句

print(someunicode)
进入


我使用的是Windows7,通过标准的Windows控制台运行iPython。我如何找出支持哪些编码?@Rhubarb,CP 1252可能是受支持的编码(我不熟悉Windows 7,您应该就此提出一个具体问题,但Windows的旧版本总是支持CP 1252,而CP 1252是一种字符映射编码,所以这是这个方向的一个提示)。不要尝试在IPython下从控制台输入/输出非ASCII字符。只是有马车。要让Unicode控制台IO在最佳状态下运行已经够难的了;不要在与低级错误的斗争中增加额外的混乱。参见例如@bobince,当然可以,但是一旦调用
.encode
您就输出了一个字节流,而不是unicode-qua-unicode——如果您的编码与您的控制台和您发出的unicode码点相匹配,那么这是可行的(您可能需要一个'ignore'作为
encode
的第二个参数来覆盖后一个问题)。
print(someunicode.encode('foobar'))