unicode 错误打印 \u2002 使用 Python 3
unicode error printing \u2002 using Python 3
我在尝试打印文本块时收到 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")
阅读的
适合我! (在 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>
在 Unicode 中使用该字符没有问题(作为 Python 中的 unicode 字符串)。但是当你把它写出来时("print it"),它需要被编码成一个编码。某些编码不支持某些字符。您用于打印的编码不支持该特定字符。
可能您正在使用 Windows 控制台,该控制台通常使用不包含此字符的代码页,如 850 或 437。
有一些方法可以更改 Windows 控制台代码页 (chcp
),或者您可以尝试在 Idle 或其他 IDE
我在尝试打印文本块时收到 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")
适合我! (在 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>
在 Unicode 中使用该字符没有问题(作为 Python 中的 unicode 字符串)。但是当你把它写出来时("print it"),它需要被编码成一个编码。某些编码不支持某些字符。您用于打印的编码不支持该特定字符。
可能您正在使用 Windows 控制台,该控制台通常使用不包含此字符的代码页,如 850 或 437。
有一些方法可以更改 Windows 控制台代码页 (chcp
),或者您可以尝试在 Idle 或其他 IDE