kai: probleme mir MySQL 4.1 und der Kollation - ö ü ä´s

hallo zusammen,

ich verstehe trotz dokumentation der MySQL 4.1 einfach nicht
welche werte ich bei Kollation verwenden muss um so arbeiten zu können
wie früher mit der 4.0 version.

also ich mache folgendes ich führe über ein php script einen import
durch in dem die sonderzeichen wie ö ü ä im klartext verwendet werden.
also : ... INSERT INTO ....  ,'Rüttenscheiderstr. 162' , ...
so wenn ich mir das ganze jetzt über phpmyadmin anschaue und oder
bearbeite ist das alles ok und wird auch richtig dargestellt.
wenn ich jatzt allerdings die inhalte der db in einer webseite aus
geben lasse dann bekomme ich für ö ü ä immer ein '?' und wenn ich
den inhalt der datenbank wiederum in einem input feld anzeigen lasse
dann stehen da wieder ö ä ü´s ....
ich hab mal mehrere Kollation einstellungen probiert aber das problem
bleibt immer das selbe ...

kann mir da mal jemand nen tip geben ...
ich rall es nämlich nicht.

vielen dank
kai

  1. echo $begrüßung;

    ich verstehe trotz dokumentation der MySQL 4.1 einfach nicht
    welche werte ich bei Kollation verwenden muss um so arbeiten zu können
    wie früher mit der 4.0 version.

    Zunächst: Die Kollation ist eine Frage der Sortierung. Dich interessiert von "Character Sets and Collations" der Teil "Character Set". Beides hängt zusammen, weswegen es teilweise vermischt ist.

    Du kennst also schon das Kapitel Character Set Support und weißt, dass Einstellungen für den verwendeten Zeichensatz an vielen verschiedenen Stellen vorgenommen werden können und dass diese Einstellungen unterschiedlich sein können. (Beispielsweise können zwei Felder der selben Tabelle verschiedene Charsets verwenden und die Tabelle wiederum ein ganz anderes.)

    also ich mache folgendes ich führe über ein php script einen import
    durch in dem die sonderzeichen wie ö ü ä im klartext verwendet werden.

    "Klartext" ist keine Kodierungs-/Charset-Angabe. Du meinst vermutlich eine Kodierung nach ISO-8859-1, latin1, win-1252 oder kompatiblen. Bis Version war der Default-Zeichensatz von MySQL latin1 (mit schwedischer Sortierung, aber die Kollation interessiert bei deinem Problem nicht).

    Nun kommt es zunächst darauf an, welches Default-Charset eingestellt ist, beziehungsweise im Konkreten, welches Charset die Tabelle und die einzelnen Felder darin eingestellt haben, damit die Daten innerhalb der Tabelle/Felder in der von dir gewünschten Kodierung abgelegt werden.

    so wenn ich mir das ganze jetzt über phpmyadmin anschaue und oder
    bearbeite ist das alles ok und wird auch richtig dargestellt.

    Als nächstes interessiert auch noch die Kodierung, die auf einer Verbindung zwischen Client und Server verwendet wird. Wenn die Default-Kodierung UTF-8 ist, und deine Anwendungen aber ISO-8859-1/latin1 haben wollen, muss entweder der Default-Wert umkonfiguriert werden oder jede Verbingung muss mit SET NAMES sich die passende Kodierung einstellen. Ansonsten nimmt MySQL automatisch Umwandlungen zwischen den Datenkodierungen und der Verbindungskodierung vor.

    phpMyAdmin kennt diese Problematik und macht das alles richtig. Siehe dazu auch den Wert unter "Zeichensatz der Verbindung" (oder so), der auf der Hauptseite angezeigt wird.

    echo "$verabschiedung $name";