pythonsocketserver&;Mobile Safari POST表单:具有unicode符号,但将“utf8”报告为“内容编码”`
我有一个脚本,它解析从客户端通过HTTP发送的套接字读取的一些数据 在HTTP请求字段中,[Mobile]Safari[在模拟器中]将内容编码报告为pythonsocketserver&;Mobile Safari POST表单:具有unicode符号,但将“utf8”报告为“内容编码”`,python,http,safari,Python,Http,Safari,我有一个脚本,它解析从客户端通过HTTP发送的套接字读取的一些数据 在HTTP请求字段中,[Mobile]Safari[在模拟器中]将内容编码报告为utf8,但显然不是这样。例如,当我键入“某人的东西”时,它将撇号编码为0x0092(似乎是cp1252编码) 以前有没有人遇到过这个错误并找到了解决它的好方法?我不想丢弃字符或采用编码。客户端似乎使用的编码与HTTP头中声明的编码不同。在这种情况下,它在报头中指定utf-8,但实际编码是cp1252 您可以尝试使用模块处理此问题 这并不是100%准
utf8
,但显然不是这样。例如,当我键入“某人的东西”时,它将撇号编码为0x0092
(似乎是cp1252
编码)
以前有没有人遇到过这个错误并找到了解决它的好方法?我不想丢弃字符或采用编码。客户端似乎使用的编码与HTTP头中声明的编码不同。在这种情况下,它在报头中指定utf-8,但实际编码是cp1252 您可以尝试使用模块处理此问题 这并不是100%准确,但是如果客户机打算谎报它使用的编码,那么这可能会有所帮助
>>> import chardet
>>> chardet.detect(b'abcd')
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
>>> chardet.detect(b'abcd\x92')
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}