【问题标题】:What is the encoding format of nginx's access log?nginx的访问日志的编码格式是什么?
【发布时间】:2015-11-29 18:45:34
【问题描述】:

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

【问题讨论】:

    标签: nginx


    【解决方案1】:

    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,使用 '?'错误的替代品,足以满足我的需求。

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      相关资源
      最近更新 更多