Jak ustawić odpowiednie nagłówki dla JSON w Apache?

10

Mam serwer Apache, który podaje statyczne pliki JSON. Typ zawartości jest poprawnie reprezentowany w nagłówku za pomocą Content-Type: application/jsonnagłówka.

Jak dodać prawidłowy zestaw znaków do nagłówka?

Mam w moim wierszu następującą linię httpd.conf:

AddDefaultCharset utf-8

ale nawet przy tej linii Apache nie ustawia zestawu znaków w nagłówku.

Jest to ważne, ponieważ moje pliki JSON zawierają pewne dane w języku francuskim, a akcenty nie są poprawnie odczytywane w kodzie JavaScript.

Jak więc ustawić odpowiednie nagłówki dla JSON w Apache?

Devdatta Tengshe
źródło
Jak są zakodowane twoje pliki JSON? Ponieważ JSON MUSI być UTF-8, UTF-16 lub UTF-32, wszystko inne jest niedozwolone, a samo wysłanie innego zestawu znaków nie spowoduje automatycznej konwersji plików.
lsmooth
JSON jest zakodowany w UTF-8
Devdatta Tengshe
@lsmooth Plik kodowany za pomocą UTF-8 jest w niektórych okolicznościach niewystarczający, szczególnie w przypadku IE9 (być może także wcześniej); patrz tutaj . Język NSFW, nic dziwnego :-). Osobiście napotkałem problemy z jquery-datatables i JSON bez nagłówków zestawu znaków podczas testowania z IE9.
JK Laiho

Odpowiedzi:

10

Możesz użyć następującego kodu w httpd.conf, jeśli masz dostęp, a nawet .htaccess, aby wymusić Apache, aby wysłać nagłówek kodowania UTF-8.

AddDefaultCharset utf-8
AddType 'application/json; charset=UTF-8' .json
Devdatta Tengshe
źródło
Szukałem sposobu, aby Apache obsługiwał pliki statyczne z kodowaniem UTF-8, AddType w końcu to zrobił. Dzięki!
Ján Lalinský
1

Możesz dodać to do httpd.conf

AddCharset utf8 .json
fengling229
źródło
1
Jak to jest lepsze od poprzedniej odpowiedzi ?
kasperd 28.04.16