[英]unicode error printing \u2002 using Python 3
我收到以下錯誤:嘗試打印文本塊時,Python無法解碼字符\
:
UnicodeEncodeError: 'charmap' codec can't encode character '\ ' 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字符串)沒有問題。 但是當您將其寫出(“打印”)時,需要將其編碼為一種編碼。 某些編碼不支持某些字符。 您用於打印的編碼不支持該特定字符。
可能您使用的是Windows控制台,該控制台通常使用不包含此字符的代碼頁(例如850或437)。
有多種方法可以更改Windows控制台代碼頁( chcp
),也可以在Idle或其他一些IDE中嘗試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.