Como definir cabeçalhos adequados para JSON no Apache?

10

Eu tenho um servidor Apache que está servindo arquivos JSON estáticos. O tipo de conteúdo está sendo representado corretamente no cabeçalho com um Content-Type: application/jsoncabeçalho.

Como adiciono o conjunto de caracteres correto ao cabeçalho?

Eu tenho a seguinte linha no meu httpd.conf:

AddDefaultCharset utf-8

mas mesmo com essa linha, o Apache não define o conjunto de caracteres no cabeçalho.

Isso é importante, porque meus arquivos JSON têm alguns dados em francês e os acentos não estão sendo lidos corretamente no Código JavaScript.

Então, como definir cabeçalhos adequados para JSON no Apache?

Devdatta Tengshe
fonte
Como seus arquivos JSON são codificados? Como o JSON tem que ser UTF-8, UTF-16 ou UTF-32, qualquer outra coisa não é permitida e apenas o envio de um conjunto de caracteres diferente não converterá automaticamente os arquivos.
Lsmooth # 13/14
O JSON é codificado em UTF-8
Devdatta Tengshe
@lsmooth O arquivo que está sendo codificado com UTF-8 não é suficiente em algumas circunstâncias, especialmente envolvendo o IE9 (possivelmente também anteriormente); veja aqui . Linguagem NSFW, sem surpresa :-). Pessoalmente, encontrei problemas com o jquery-datatables e o JSON sem cabeçalhos de charset ao testar com o IE9.
JK Laiho

Respostas:

10

Você pode usar o código a seguir no seu httpd.conf se tiver acesso, ou mesmo seu .htaccess, para forçar o Apache a enviar um cabeçalho de codificação UTF-8.

AddDefaultCharset utf-8
AddType 'application/json; charset=UTF-8' .json
Devdatta Tengshe
fonte
Eu estava procurando uma maneira de fazer o Apache servir arquivos estáticos com codificação UTF-8, e o AddType finalmente fez isso. Obrigado!
Ján Lalinský 25/11
1

Você pode adicionar isso ao httpd.conf

AddCharset utf8 .json
fengling229
fonte
1
Como isso é melhor que a resposta anterior ?
kasperd