這是在寫入大量文本到文件或標準輸出的過程中,今天讓我發瘋的東西。我經常會收到有關錯誤字符的錯誤消息。這裏有一個簡化的測試用例:Python 3.x:確保字符串已準備好打印
Python 3.4.0b2 (v3.4.0b2:ba32913eb13e, Jan 5 2014, 16:13:26) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> x='\x92'
>>> print(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\Lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x92' in position 0: character maps to <undefined>
我有一大塊文字。我想打印全部或保存到文件,但沒有得到這個錯誤。可能嗎?我最喜歡的解決方案是保存這個煩人的字符(還有更多?),但如果有一個很好的方法來過濾它,那也會很好(我知道如何過濾單個字符,但我不知道知道'\x92'
是否有一堆類似的字符,它也需要被過濾掉。)
上面的代碼片段在Python 3.3.3中沒有返回錯誤。也許這是一個配置問題或Python中的錯誤3.4.0 –
@StefanoSanfilippo:你的控制檯是否設置爲CP437? –
@ IgnacioVazquez-Abrams不,我的控制檯設置爲UTF8。問題可能在那裏。 –