读取Python日志文件时出现Unicode错误(日志记录)

2024-04-29 16:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pythons日志库创建一个日志文件。当我试图用python阅读并在html页面上打印时(使用Flask),我得到:

<textarea cols="80" rows="20">{% for line in log %}{{line}}{% endfor %}
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 36: ordinal not in range(128)

我想这和日志文件在其他解码中被解码有关,但是哪个呢?在

这是设置日志文件的行,如果有帮助:

^{pr2}$

我怎么解决这个问题?在


Tags: 文件inlogflaskforhtmlline页面
2条回答

logging包文件处理程序将对发送给它的任何Unicode对象进行编码,除非指定了其他编码。在

再次使用^{}将文件作为UTF-8数据读取,您将再次获得unicode对象,这是Jinja2的理想选择:

import io

log = io.open('log.log', encoding='utf8')

{UTF}也可以为cd4}指定一个很好的编码。如果要选择其他编码,请使用encoding关键字参数:

^{pr2}$

我不熟悉烧瓶,但如果你能把原木里的东西拿成细绳的话。您可以将其编码为utf-8,如下所示:

string = string.encode('utf-8') # string is the log's contents, now in utf-8

相关问题 更多 >