Magneto: - MYSQL UFT8 Formatierungsscheiß mit Sonderzeichen

Hallo,

wieder einmal ein UTF8 Formatierungsproblem, hier die üblichen verdächtigen
ÜÄÖ...

Angezeigt wird es sowohl richtig als auch falsch, siehe Screenshot

Übliche verdächtige:
*Datenbank*
-Mysql-feld (Auskunft phpMyAdmin) -> utf8_general_ci (für beide angezeigten Felder)
-Mysql-feldinhalt (Auskunft phpMyAdmin)

*Server*
-HTTP Header (vom Server gesendet) -> Content-Type: text/html; charset=utf-8
-Meta -> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Ausschnitt aus dem Quelltext

  
...<td><span style="font-size:123%"><a title="K�ln-Ossendorf" rel="bookmark" href=...
... 50829 Köln</td> ...  

Ich weiß nicht mehr was da noch zu machen ist. Habt ihr eine Ahnung?

  1. Hi,

    Angezeigt wird es sowohl richtig als auch falsch

    da der Übertragungsweg und die dort verwendeten Codierungen gleich sind, ebenso wie die Codierung des resultierenden HTML-Dokuments, die innerhalb des Dokuments auch nicht wechseln kann, gibt es nur einen logischen Schluss:

    ...<td><span style="font-size:123%"><a title="K?ln-Ossendorf" rel="bookmark" href=...

    ... 50829 Köln</td> ...

      
    Die Spalte "bezeichnung" mag in der DB wohl als UTF-8 festgelegt sein, der Inhalt ist jedoch fälschlicherweise schon in (vermutlich) ISO-8859-x eingetragen worden. phpMyAdmin scheint das stillschweigend zu korrigieren.  
      
    
    > Ich weiß nicht mehr was da noch zu machen ist. Habt ihr eine Ahnung?  
      
    Korrigiere die Feldinhalte der DB.  
      
    So long,  
     Martin  
    
    -- 
    Ordnung schaffen heißt, das Eigelb vom Dotter zu trennen.  
    
    
    1. Hallo Martin,

      Die Spalte "bezeichnung" mag in der DB wohl als UTF-8 festgelegt sein, der Inhalt ist jedoch fälschlicherweise schon in (vermutlich) ISO-8859-x eingetragen worden. phpMyAdmin scheint das stillschweigend zu korrigieren.

      Ich habe mir gerade die Datenbank per PHPMYADMIN exportiert und angeschaut hier ist der Datensatz:
      'Köln-Ossendorf', 'straßenname', 50829, 'Köln'
      also richtig vorhanden oder?
      Ich habe auch den gleichen Datensatz importiert (überschrieben), und trotzdem das gleiche Problem!

  2. Hi!

    Übliche verdächtige:
    *Datenbank*
    -Mysql-feld (Auskunft phpMyAdmin) -> utf8_general_ci (für beide angezeigten Felder)
    -Mysql-feldinhalt (Auskunft phpMyAdmin)

    *Server*
    -HTTP Header (vom Server gesendet) -> Content-Type: text/html; charset=utf-8
    -Meta -> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    *Verbindung zwischen DBMS und Server*

    • explizit ausgehandelte Kodierung: ____________
      (Stichwörter: mysql(i)_set_charset() oder SET NAMES)

    Ausschnitt aus dem Quelltext
    ...<td><span style="font-size:123%"><a title="K�ln-Ossendorf" rel="bookmark" href=...
    ... 50829 Köln</td> ...

    Ich weiß nicht mehr was da noch zu machen ist. Habt ihr eine Ahnung?

    Das erste ist vermutlich ein ISO-8859-1-Zeichen. Wenn du mal in deinem Browser die Zeichenkodierung auf ISO-8859-1 umstellst (meist unter Ansicht->(Zeichen)kodierung zu finden), solltest du das erste ö lesen können.

    Verfolge den Weg und die Bearbeitungsschritte beider Informationen. Wenn da kein utf8decode() vorkommt, mach zu jedem Schritt (notfalls vorher und nachher) eine Kontrollausgabe mit bin2hex() oder urlencode(). (urlencode() ist zwar nicht dafür vorgesehen, erzeugt aber im Gegensatz zu bin2hex() eine einfacher zu lesende Ausgabe).

    Lo!