我在尝试打印文本块时遇到Python无法解码字符\u2002
的错误:
UnicodeEncodeError: 'charmap' codec can't encode character '\u2002' in position 355: character maps to <undefined>
我不明白的是,据我所知,这是一个unicode字符(即EN SPACE
字符),所以不确定为什么不打印。
供参考,使用file_content = open (file_name, encoding="utf8")
答案 0 :(得分:1)
适合我! (在linux终端上)
>>> print("\u2002")
这是一个看不见的,因为它是EN_SPACE
如果您在Windows上,但您可能在终端中使用代码页125X并且......
>>> "\u2002".encode("cp1250")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.4/encodings/cp1250.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\u2002' in position 0: character maps to <undefined>
答案 1 :(得分:1)
在Unicode中使用该字符没有问题(作为Python中的unicode字符串)。但是当你把它写出来时(&#34;打印它&#34;)它需要被编码成一个编码。有些编码不支持某些字符。您用于打印的编码不支持该特定字符。
您可能正在使用Windows控制台,该控制台通常使用850或437之类的代码页,但不包含此字符。
有多种方法可以更改Windows控制台代码页(chcp
),也可以尝试使用Idle或其他IDE