我正在维护的一个应用程序将从 Web 日志中提取的用户代理加载到使用“latin1”字符集的 MySQL 表列中。有时,它无法加载如下所示的用户代理:
Mozilla/5.0 (Iâ?; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML^C like Gecko) Version
我怀疑是窒息了Iâ?
。我正在努力弄清楚是否应该支持这一点,或者它是否是上游日志系统引入的损坏。这是 HTTP 标头中的合法用户代理吗?
RFC 2616(HTTP 1.1)says http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2该消息头内容必须是“由以下任一组成*TEXT
或标记、分隔符和带引号的字符串的组合”。如果你看一下定义 http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2对于 TEXT 等,您会发现合法字符是那些字节值不在 [0, 31] 范围内且不等于 127 的字符;因此,诸如此类的字符â
据我所知,根据规范是合法的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)