Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeichensatzproblem (utf-8 oder auch nicht)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeichensatzproblem (utf-8 oder auch nicht)

    Hi,

    ich habe mal eine Frage zu Zeichensätzen in mysql.
    Meine Tabellen sind mit der Kollation utf8_general_ci angelegt. Ich importiere ein XML-File, ebenfalls utf-8, und in der DB passiert dann sowas:

    aus "Conté" macht er "Conté". Klar, wenn ich in meinem Header der Website
    Code:
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    angebe zeigt er mir das richtig an, aber warum wird das nicht in der DB richtig gespeichert? Das Problem äußert sich dann, wenn ich per php eine Variable übergebe (Conté) und das mit der DB (Conté) verglichen werden soll. Dann sagt er natürlich, dass das nicht gleich ist...

  • #2
    Dann sagt er natürlich, dass das nicht gleich ist...
    Weil die Eingabe vermutlich nicht utf-8 ist.

    PHP-Code:
    <?php 
    $s 
    /* hier die übergebene Variable einsetzen */

    for($i=0$i<strlen($s); $i++) {
        echo 
    ord($s{$i}), ' ';
    }
    ?>
    Mach das mal mit der Variablen, die Dir für die Suche übergeben wird.
    Was gibt das dann aus?

    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    PHP kann so eingestellt werden (und wird es auch oft), dass es einen http header mit diesen Informationen ausgibt.
    Das kann zu Konflikten führen und die meta Angabe wird dann meistens ignoriert. Also besser den http header entsprechend setzen.

    Kommentar


    • #3
      Definiere "nicht richtig"? Dass Du utf-8 als Zeichensatz angeben musst ist doch vollkommen richtig. Damit sieht das so aus, als würde MySQL nichts falsch machen.
      "é" passiert, wenn man das é aus UTF-8 versucht in Iso-8859-1 darzustellen.

      Deiner Fehlerbeschreibung ist nicht zu entnehmen, ob MySQL die UTF-8 Daten verhackstückt oder ob Du versuchst, diese wie Iso-8859-1 zu benutzen.

      Kommentar


      • #4
        Sorry, war alles richig. Die Falsche Darstellung lag wohl an phpMYAdmin - aber auf der Konsole stellt er das auch so dar... Schein wohl so zu gehören

        Das Problem mit dem Vergleich lag woanders. Da war ich auf der falschen Fährte.

        Vielen Dank für eure Tipps!

        Kommentar

        Lädt...
        X