¿Cómo configuro los encabezados adecuados para JSON en Apache?

10

Tengo un servidor Apache que está sirviendo archivos JSON estáticos. El tipo de contenido se representa correctamente en el encabezado con un Content-Type: application/jsonencabezado.

¿Cómo agrego el juego de caracteres correcto al encabezado?

Tengo la siguiente línea en mi httpd.conf:

AddDefaultCharset utf-8

pero incluso con esta línea, Apache no establece el conjunto de caracteres en el encabezado.

Esto es importante, porque mis archivos JSON tienen algunos datos en francés, y los Acentos no se leen correctamente en el Código JavaScript.

Entonces, ¿cómo configuro los encabezados adecuados para JSON en Apache?

Devdatta Tengshe
fuente
¿Cómo se codifican sus archivos JSON? Debido a que JSON TIENE que ser UTF-8, UTF-16 o UTF-32, cualquier otra cosa no está permitida y solo enviar un Charset diferente no convertirá automáticamente los archivos.
lsmooth
El JSON está codificado en UTF-8
Devdatta Tengshe
@lsmooth El archivo que se codifica con UTF-8 no es suficiente en algunas circunstancias, especialmente cuando se trata de IE9 (posiblemente también antes); ver aquí . Lenguaje NSFW, como era de esperar :-). Personalmente, he encontrado problemas con jquery-datatables y JSON sin encabezados charset al probar con IE9.
JK Laiho

Respuestas:

10

Puede usar el siguiente código en su httpd.conf si tiene acceso, o incluso su .htaccess, para forzar a Apache a enviar un encabezado de codificación UTF-8.

AddDefaultCharset utf-8
AddType 'application/json; charset=UTF-8' .json
Devdatta Tengshe
fuente
Estaba buscando una manera de hacer que Apache sirviera archivos estáticos con codificación UTF-8, AddType finalmente lo hizo. ¡Gracias!
Ján Lalinský
1

Puede agregar esto a httpd.conf

AddCharset utf8 .json
fengling229
fuente
1
¿Cómo es eso mejor que la respuesta anterior ?
kasperd