我有脚本,可以通过日志系统打印消息,有时还可以打印命令。在Windows控制台上,我会收到如下错误消息
Traceback (most recent call last):
File "C:\Python32\lib\logging\__init__.py", line 939, in emit
stream.write(msg)
File "C:\Python32\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position 4537:character maps to <undefined>
有没有一种通用的方法可以使日志系统中的所有编码、打印命令等都失效保护(忽略错误)?
问题是,您的终端/shell(在Windows上是cmd)无法打印每个Unicode字符。
可以使用
str.encode
方法的errors
参数对字符串进行故障安全编码。例如,可以通过设置errors='replace'
将不支持的字符替换为?
。有关其他选项,请参见documentation。
编辑如果您想要日志记录的一般解决方案,您可以子类
StreamHandler
:相关问题 更多 >
编程相关推荐