在HTTP标头内是unicode用户代理合法吗?

And*_*eiM 9 mysql user-agent http

我正在维护的应用程序使用'latin1'字符集将从Web日志中提取的用户代理加载到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标头中的合法用户代理吗?

Jon*_*Jon 14

RFC 2616(HTTP 1.1)表示消息头内容必须"由*TEXT令牌,分隔符和引用字符串之一或其组合组成".如果查看TEXT等的定义,您会发现合法字符是字节值不在[0,31]范围内且不等于127的字符; 因此â,根据规范,我可以说是合法的字符.