JSON - Problem mit Umlauten

SAMariter

Mitglied
Hallo zusmannen,

ich programmiere schon eine ganze weile an einem "Webshop". Das ganze läuft folgendermaßen ab:

Ich erhalte die Daten von einem anderen Internetshop. Ich habe eine PHP datei geschrieben, die bei dem anderen Anbieter auf dem Server liegt. Diese Datei holt die Daten aus der Datenbank und gibt mir einen "Text" in Form von einem JSON-array aus.

Sieht so aus (nur ein kleiner Auszug):
[{'categories_id':'7453','parent_id':'7419','categories_name':'Werkzeug / Additive'},{'categories_id':'7452','parent_id':'7419','categories_name':'Verkleidungsteile'},{'categories_id':'7451','parent_id':'7419','categories_name':'Vergaser'},{'categories_id':'7450','parent_id':'7419','categories_name':'Variomatik'},{'categories_id':'7449','parent_id':'7419','categories_name':'Styling'},{'categories_id':'7448','parent_id':'7419','categories_name':'Motorteile'},{'categories_id':'7447','parent_id':'7419','categories_name':'Merchandise'},{'categories_id':'7446','parent_id':'7419','categories_name':'Kurbelwelle'},{'categories_id':'7445','parent_id':'7419','categories_name':'Kupplung'},{'categories_id':'7444','parent_id':'7419','categories_name':'Getriebe'},{'categories_id':'7443','parent_id':'7419','categories_name':'Fahrwerk'},{'categories_id':'7442','parent_id':'7419','categories_name':'Elektrik'}]

In meiner JS Datei hole ich das dann per AJAX und lese das ganze mit eval() aus. Funktioniert soweit auch ganz gut.
Das problem ist nun, dass die Umlaute als eine schwarze Raute mit einem Fragezeichen darin dargestellt wird.

Ich habe schon öfters gelesen, das das an der UFT-8 konvertierung liegen könnte. Aber wo muß ich da was Konvertieren.

Danke euch

CU
 
Moin,


JSON benutzt ja als Zeichenkodierung UTFx

Du müsstest also sowohl Schlüssel, als auch Werte darin codieren.

  1. Speichere dein Skript in UTF8
  2. Sorge dafür, dass die Kommunikation mit der DB auch in UTF8 vor sich geht. Wie das geht, steht hier: http://www.tutorials.de/forum/php/1...-auftretende-fehlermeldungen.html#post1850409
  3. Benutze zum Erstellen des JSON das in PHP implementierte [phpf]json_encode[/phpf]
    So erhältst du sauberes JSON, und hast keine Probleme mit der Codierung der Empfänger-Seite, falls diese nicht in UTF8 sein sollte, da json_encode() nicht-ASCII-Zeichen als Unicode-Sequenz darstellt(so wird bspw. aus einem ö ein \u00f6)

In meiner JS Datei hole ich das dann per AJAX und lese das ganze mit eval() aus.
eval ist evil, erst recht, wenn die Daten aus einer fremden Quelle kommen.
Verwende stattdessen besser json2.js->JSON.parse()
 
Hallo zusammen,

ich habe mal eine frage zu dem Thema.
Sorry wenn ich nicht alles richtig bezeichne aber ich bin noch nicht so lang beim Programmieren, ich hoff Ihr versteht trotzdem was ich meine.

Ich hab mir eine Datenbank mit Mysql zusammen gebaut und hole die Daten über ein php heraus, verpack sie in ein Json und verschick sie.
Soweit geht alles ganz gut aber wenn ich mir die Sachen testhalber auf dem Webbrowser anschauen will bekomm ich bei den Umlauten immer eine Zeichenkette.

So z.B. Wüste = W\u00fcste

Jetzt hab ich schon viel darüber gelesen aber nicht von den hat bei mir geklappt, die blöden Umlaute wollen einfach nicht kommen. :(

Ich hab meine ganze db schon auf das utf8 umgestell...

phpmyadmin.jpg

und sogar diese Befehle bei mir eingebaut, aber die dinger kommen einfach nicht. :(

Code:
SET NAMES utf8
SET CHARACTER SET 'utf8'

Habt Ihr noch ne Ahnung was ich falsch mache?

Gruß Toni
 
Es klappt :)

ist nur im Browser so, wenn ich die Daten in Java auspacke und anschaue sind sie richtig, in dem fall muss ich nicht weiter suchen.

Trotzdem danke für die Antwort!

Gruß, Toni
 

Neue Beiträge

Zurück