php-ausgabe+umlaute+latin1_swedish_ci
empi
- php
Hallo zusammen.
Ich habe hier ein selbstgeschriebenes programm.
ich kann über formulare zeichen eingeben, welche dann in die datenbank gespeichert werden. unter anderem auch äöüß...
In phpmyadmin werden die geschrieben werte richtig angezeigt.
Soweit so gut!
Nur beim auslesen über select,... werden die "sonderzeichen" nicht richtig dargestellt.
Möchte aber vermeiden, etwas in der Datenbank umzustellen oder große änderungen durchzuführen, da sich das ganze schon in produktivem einsatz befindet.
Hat jemand einen rat für mich, wie ich mir da vielleicht einfach helfen kann??
mfg und danke
empi
Hi!
Nur beim auslesen über select,... werden die "sonderzeichen" nicht richtig dargestellt.
Hast du nach dem Verbindungsaufbau die gewünschte Zeichenkodierung ausgehandelt? mysql(i)_set_charset() aufrufen oder zur Not ein "SET NAMES"-Statement ausführen.
Übrigens: "nicht richtig" gibt es in unendlich minus einer Variante. Welche ist es bei dir?
Lo!
nein habe ich nicht gemacht.
werd mich mal einlesen, was die befehle genau machen. muss ich aber dann latin1_swedish_ci nehmen oder?
"nicht richtig" heißt, das statt dem zeichen ein komplettes sonderzeichen da steht. z.b. '�'.
mfg
empi
Hi!
nein habe ich nicht gemacht.
werd mich mal einlesen, was die befehle genau machen. muss ich aber dann latin1_swedish_ci nehmen oder?
Es wird nur die Kodierung ausgehandelt. Die Kollation (Sortier- und Zeichenvergleichsvorschrift) spielt für die Übertragung keine Rolle. Demzufolge wird nur latin1 oder utf8 ohne Sprachanhängsel angegeben.
"nicht richtig" heißt, das statt dem zeichen ein komplettes sonderzeichen da steht. z.b. '�'.
Welche Kodierung erwartest du? Dieses Fehlerbild deutet darauf hin, dass UTF-8 ausgegeben werden soll, aber keine gültige UTF-8-Sequenz in den Daten ist. Das kann dann der Fall sein, wenn Latin1/ISO-8859-1-kodierter Text statt UTF-8 gesendet wird.
Lo!
Moin!
werd mich mal einlesen, was die befehle genau machen. muss ich aber dann latin1_swedish_ci nehmen oder?
Eher nicht - es sei denn, du willst für Vergleichs- und Sortieroperationen die Vorschriften der schwedischen Sprache anwenden. Das ist, wenn du Deutsch hast, aber keine sehr gute Idee. In der Gruppe von latin1 gibt es für Deutsch zwei Kollationen, die sich in der Transformation von Umlauten in "Normalzeichen" unterscheiden. Die eine behandelt ein "ä" wie "a", die andere wie "ae". Lexikon- vs. Telefonbuchsortierung, oder so ähnlich. Details habe ich nicht im Kopf, da verweise ich gern auf die Dokumentation.
Für UTF-8 gibt es für die deutsche Sprache keine spezielle Kollation, die steckt schon in den zwei allgemeinen Regelwerken "general" oder "unicode" drin. Also z.B. "utf8_general_ci".
- Sven Rautenberg