Schrift
[thread]10236[/thread]

Ajax JSON ISO / UTF-8

Leser: 3


<< >> 6 Einträge, 1 Seite
kristian
 2007-08-27 23:25
#98734 #98734
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Wie ihr wisst bin ich in JavaScript der absolute NewBee.
Ich mache bislang Ajax per XML, das parsen in JS ist zwar IMHO krank aber es geht.
Jetzt würde ich gerne JSON nutzen und es im JS "evaln".

Meine Situation:
Die Anwendung muss in ISO-8859-X und in UTF-8 laufen.
Ich weiss das erforderliche Charset vor der serverseitigen Ausgabe.
In JSON ist kein Charset notiert.

Meine Frage:
Geht es / reicht es, wenn ich im HTTP-Header das Charset angebe?
Darf ich das?
Gibt es dazu DOKU, wenn ja wo?
Gibt es dazu Browser-spezifische Erfahrungen?
Weiss jemand wie es besser geht?

Gruss
Kristian
Struppi
 2007-08-28 11:32
#98747 #98747
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Die Übertragung in AJAX is immer UTF-8, das läßt sich auch nicht ändern.
kristian
 2007-08-28 12:53
#98755 #98755
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Sorry, wenn ich die Daten als XML schicke kann ich das Charset in der Datei angeben.
Ob es richtig ist dort ISO zu notieren ist fraglich aber es funktioniert in der Praxis.

Gruss
Kristian

PS: Meine Frage hier bezieht sich auf JSON und ein zukünftiges Projekt.
Laut der Definition für Ajax dürfte ich JSON eigentlich nicht nehmen...
Struppi
 2007-08-28 13:53
#98761 #98761
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Du kannst als charset angeben was du willst, aber die Zeichen werden trotz allem in UTF-8 übertragen, und das läßt sich wie schon gesagt nicht ändern.
kristian
 2007-08-28 15:54
#98767 #98767
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Struppi+2007-08-28 11:53:57--
Du kannst als charset angeben was du willst, aber die Zeichen werden trotz allem in UTF-8 übertragen, und das läßt sich wie schon gesagt nicht ändern.


Die Aussage wollte ich denn mal überprüfen, ich habe es bislang nur mit FireFox unter Linux durchgespielt aber das Ergebnis ist interessant.

Wenn ich die Anwendung auf UTF-8 stelle läuft die Übertragung in UTF-8, klar.
Wenn ich das Ding auf ISO-8859-1 stelle und den Ajax-Request im Browser eingebe bekomme ich die XML-Daten als ISO. (rechte Maustaste => Eigenschaften)
Wenn ich die XML-Datei im Browser habe und in der Adresszeile einen Umlaut eingebe kodiert der FF das in UTF-8 obwohl die dargestellte XML-Seite in ISO ist.
Wenn ich die Übertragung aber wie in der Anwendung vorgesehen mache, es ist dort ein select mit onchange, erfolgt das bei einer in ISO dargestellten Seite auch in ISO.
Ganz krumm wird es wenn ich die Seite in ISO ausgebe, die per Ajax eingebundenen Daten aber in UTF-8, hier hätte ich Datenmüll erwartet aber dem ist nicht so, FF stellt es richtig dar übermittelt neue Requests aber nach wie vor in ISO.

Voll geil das Ganze, ich werde es einfach mal in JSON testen wenn ich soweit bin, gehe aber davon aus, dass man letztendlich bei der Datenannahme alles erwarten darf.

Gruß
Kristian
Struppi
 2007-08-29 12:14
#98806 #98806
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Das ganze ist relativ einfach.

Die Übertragung der Zeichen erfolgt immer in UTF-8, d.h. du musst diese gegebenenfalls auf dem Server umwandeln. Was du im Client daraus machst obliegt dir.
<< >> 6 Einträge, 1 Seite



View all threads created 2007-08-27 23:25.