控制台日志存入数据库后结果乱码

2024-01-03 18:06:49

控制台输出

控制台输出

数据库返回

数据库返回

结论

控制台的输出在存储到数据库之后出现了ANSI颜色代码。这些颜色代码通常是由控制台日志库添加的,用于在支持ANSI颜色代码的终端中显示彩色文本。例如:

[95m6 [0m | [95m0.6376 [0m | [95m0.0 [0m | [95m289.2 [0m |
在上面的字符串中,序列[95m和[0m是用于改变文本颜色的ANSI转义序列。[95m通常表示亮粉色文本,而[0m表示重置文本颜色到默认值。

要解决这个问题,您需要在存储到数据库之前去除这些ANSI颜色代码。Python中可以通过正则表达式的方式来做到这一点:

import re

def remove_color_codes(text):
    # ANSI颜色代码的正则表达式
    ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]')
    return ansi_escape.sub('', text)

示例使用

log_text = "这里是包含ANSI颜色代码的日志���本"
clean_text = remove_color_codes(log_text)

然后把clean_text存入数据库
在上面的函数中,remove_ansi_color_codes会使用正则表达式匹配和去除所有的ANSI转义序列。

将处理过的无颜色代码的文本clean_text存入数据库,这样就应该不会出现之前的乱码问题了。
正确返回

请确保这个清理步骤是在数据写入数据库之前完成的,并且任何处理日志数据的代码都使用了这个清理步骤。如果多条数据需要处理,可以在批量数据提交前,循环遍历每条日志记录并进行清理。

文章来源:https://blog.csdn.net/u011974399/article/details/135367736
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。