如何在Apache中为JSON设置适当的标头?


10

我有一台提供静态JSON文件的Apache服务器。内容类型在标题中正确地带有Content-Type: application/json标题。

如何将正确的字符集添加到标题?

我的代码如下httpd.conf

AddDefaultCharset utf-8

但是即使有这一行,Apache也不会在标头中设置字符集。

这很重要,因为我的JSON文件中有一些法语数据,并且在JavaScript代码中未正确读取口音。

那么,如何在Apache中为JSON设置适当的标头?


您的JSON文件如何编码?由于JSON必须为UTF-8,UTF-16或UTF-32,因此不允许任何其他方式,仅发送不同的字符集将不会自动转换文件。
lsmooth 2014年

JSON编码为UTF-8
Devdatta Tengshe 2014年

@lsmooth在某些情况下,用UTF-8编码的文件是不够的,尤其是涉及IE9时(可能更早)。看这里。NSFW语言,毫不奇怪:-)。就个人而言,在使用IE9进行测试时,我遇到了jquery-datatables和JSON(无字符集标头)的问题。
JK Laiho 2015年

Answers:


10

如果您具有访问权限,甚至可以使用.htaccess来强制Apache发送UTF-8编码标头,则可以在httpd.conf中使用以下代码。

AddDefaultCharset utf-8
AddType 'application/json; charset=UTF-8' .json

我正在寻找一种使Apache使用UTF-8编码提供静态文件的方法,AddType最终做到了这一点。谢谢!
扬拉林斯基

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.