Mailinglisten-Archive |
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