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?


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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.