Wie setze ich die richtigen Header für JSON in Apache?

10

Ich habe einen Apache-Server, der statische JSON-Dateien bereitstellt. Der Inhaltstyp wird in der Kopfzeile korrekt mit einer Content-Type: application/jsonKopfzeile dargestellt.

Wie füge ich dem Header den richtigen Zeichensatz hinzu?

Ich habe die folgende Zeile in meinem httpd.conf:

AddDefaultCharset utf-8

Aber selbst mit dieser Zeile setzt Apache den Zeichensatz nicht im Header.

Dies ist wichtig, da meine JSON-Dateien einige Daten in Französisch enthalten und die Akzente im JavaScript-Code nicht richtig gelesen werden.

Wie setze ich die richtigen Header für JSON in Apache?

Devdatta Tengshe
quelle
Wie werden Ihre JSON-Dateien codiert? Da JSON entweder UTF-8, UTF-16 oder UTF-32 sein muss, ist alles andere nicht zulässig, und nur das Senden eines anderen Zeichensatzes konvertiert die Dateien nicht automatisch.
lsmooth
Der JSON ist in UTF-8
Devdatta Tengshe
@lsmooth Die mit UTF-8 codierte Datei reicht unter bestimmten Umständen nicht aus, insbesondere mit IE9 (möglicherweise auch früher). siehe hier . NSFW-Sprache, nicht überraschend :-). Persönlich sind beim Testen mit IE9 Probleme mit jquery-datatables und JSON ohne Zeichensatz-Header aufgetreten.
JK Laiho

Antworten:

10

Sie können den folgenden Code in Ihrer httpd.conf verwenden, wenn Sie Zugriff haben oder sogar Ihren .htaccess, um Apache zu zwingen, einen UTF-8-Codierungsheader zu senden.

AddDefaultCharset utf-8
AddType 'application/json; charset=UTF-8' .json
Devdatta Tengshe
quelle
Ich suchte nach einer Möglichkeit, Apache dazu zu bringen, statische Dateien mit UTF-8-Codierung bereitzustellen. AddType tat dies schließlich. Vielen Dank!
Ján Lalinský
1

Sie können dies zu httpd.conf hinzufügen

AddCharset utf8 .json
fengling229
quelle
1
Wie ist das besser als die vorherige Antwort ?
Kasperd