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