nginx的访问日志的编码格式是什么?

时间:2015-11-29 18:45:35

标签: nginx

Nginx的access.log的编码是什么?我试图遍历该文件但我的脚本raises an exception" invalid byte sequence in UTF-8"当它看到我的服务器中有中文/泰文字符的请求时。

1 个答案:

答案 0 :(得分:0)

HTTP协议请求主要是ASCII,数据字段允许为任何八位字节。请参阅Which encoding is used by the HTTP protocol?

Nginx的错误和访问日志将反映出这一点。

我从一个北美小型网站获得的450,000条记录的经验表明,除了一条记录外,所有记录都被解码为ASCII而没有错误。该记录包含4个连续字节(b' \ xb8E \ x8c \ xde'),它们是无效的UTF-8,但是有效的big5hkscs(Python的繁体中文编解码器)产生了两个字形。

请参阅How can I programmatically find the list of codecs known to Python?以获取针对非ASCII位的暴力攻击的编解码器名称列表。

将二进制日志记录解码为ASCII,其中包含'?'错误的替代,足以满足我的需求。