HTTP请求的编码是什么?

时间:2014-11-17 17:40:52

标签: http

在执行json_encode($_SERVER)之类的操作时,我收到错误,因为JSON编码的输入无效UTF-8。事实上,我调查了这个错误并注意到一些用户代理字符串是在ISO-8859-1中编码的。我如何知道HTTP请求使用了什么编码,以便我可以使用utf8_encode()iconv()来适当地对数据进行JSON编码?

1 个答案:

答案 0 :(得分:1)

据我所知,标准没有说:http://www.w3.org/Protocols/rfc2616/rfc2616.html

请求正文应在Content-Type标头中包含编码,但标头值应为plain ascii。除此之外的任何事情都没有从我能说的内容中指明。我不确定它是否严格错误但是显然没有标准可以用来调用iconv。

我要做的只是遍历字符串并删除任何非ASCII值。也许你可以通过简单的str_replace调用或preg_replace remove non-ascii characters from string in php来解决它。