Nginx的access.log的编码是什么?我试图遍历该文件但我的脚本raises an exception" invalid byte sequence in UTF-8
"当它看到我的服务器中有中文/泰文字符的请求时。
答案 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,其中包含'?'错误的替代,足以满足我的需求。