phpbar.de logo

Mailinglisten-Archive

[php] json_encode / Cut nach Umlaut

[php] json_encode / Cut nach Umlaut

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Jul 19 12:30:53 CEST 2007


Hallo Michael,

Am Donnerstag, 19. Juli 2007 schrieb Michael Borchers:
> > Hallo Michael,
> >
> > Am Donnerstag, 19. Juli 2007 schrieb Michael Borchers:
> >> Aus MySQL5 (Kollation latin1_german1_ci) heraus erhalte ich Namen
> >> mit Umlauten. Diese werden dann via json_encode() weitergereicht.
> >> Dabei werden die Namen nach den Umlauten abgeschnitten ('foö' =>
> >> 'fo').
> >>
> >> Sicherlich muss ich die auf UTF8 kodieren, oder?
> >>
> >> Würde das gerne ausserhalb von php direkt mit MySQL machen, wie
> >> wäre die richtige Syntax dann für SELECT name FROM ... - irgendwas
> >> mit USING utf8?
> >
> > guckst Du hier:
> > http://dev.mysql.com/doc/refman/5.1/de/charset-convert.html
> >
> > :-)
> >
> > Eventuell mußt Du noch den Verbindungszeichensatz etc. beachten.
>
> Ok, jetzt habe ich z.B. den namen 'pütz' aus der DB. Wenn ich diesen
> String nach json_encode() erhalte ich nur noch 'p'.
> Wie muss ich den String konvertieren, damit json die Umlaute nicht
> mehr abschneidet?

Du mußt die Zeichenkette für JSON in UTF-8 formatieren. Offensichtlich 
kommt sie bei Dir bei json_encode() immer noch in ISO-8859-1 an. Siehe 
auch den zeitlich ersten Kommentar ganz unten auf der Seite im 
Handbuch:

http://de2.php.net/manual/de/function.json-encode.php#69393

Du mußt jetzt also mal gucken, wo Du die Daten in welchem Zeichensatz 
vorliegen hast.


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive