HTML innerhalb MySQL
sebman
- datenbank
Hallo Leute,
ich habe hier ein merkwürdiges Problem.
Mittels ODBC schiebe ich aus einer Filemaker-Datenbank Daten in eine MySQL Datenbank. Mitunter beinhalten die Felder die ich übertrage auch einfache HTML Befehle. Soweit funktioniert das auch wunderbar.
Mitunter kommt es aber vor das die HTML Befehle auf der Seite auf der ich den Inhalt der Felder ausgebe nicht "ausgeführt" werden. Sprich anstelle "Fetter Text" (<- in Fett) steht dort nur "<b>Fetter Text</b>".
Das Merkwürdige ist das das nicht bei allen Datensätzen so ist. In der Datenbank (übrigens UTF-8) steht der Inhalt aber richtig drin.
Wenn ich das Feld in der Datenbank manuell änder (dafür nutze ich den GUI Client Sequel Pro) kann ich den Fehler nicht beheben - es sei denn ich lösche den Inhalt komplett und trage ihn händisch nach.
Ich habe das Gefühl das dort "unsichtbare" Steuerzeichen mitübertragen wurden, die eine ordentliche Ausgabe verhindert.
In meinem PHP Dokument gebe ich übrigens die codierung mit an:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
und
$mysqli->set_charset('utf8');
für die Datenbank
Meine Frage jetzt: Ist das ein Problem von UTF-8 - weil es theoretisch alle Zeichen übernimmt (auch unsichtbare Steuerzeichen)? Gibt es eine Möglichkeit diese Zeichen sich irgendwie anzeigen zu lassen? Hattet Ihr schonmal so ein Problem und wenn ja, wie habt Ihr das gelöst?
Bin für alle Tipps dankbar
Sebastian
Hi,
Mitunter beinhalten die Felder die ich übertrage auch einfache HTML Befehle.
sowas gibt's nicht. Du meinst HTML-Tags oder ggf. HTML-Elemente.
Wenn ich das Feld in der Datenbank manuell änder (dafür nutze ich den GUI Client Sequel Pro) kann ich den Fehler nicht beheben - es sei denn ich lösche den Inhalt komplett und trage ihn händisch nach.
Die GUI kenne ich nicht, möglicherweise speichert sie die Inhalte HTML-kodiert ab. In dem Fall reklamiere die Software. Andernfalls überprüfe, ob die Kodierung bei der Ausgabe stattfindet.
Ich habe das Gefühl das dort "unsichtbare" Steuerzeichen mitübertragen wurden, die eine ordentliche Ausgabe verhindert.
Das glaube ich nicht. Wenn Du eine URL nennst, unter der das Ergebnis gesehen werden kann, lässt sich dieser Glaube mit der Wahrheit abgleichen.
Cheatah
hi,
Mitunter kommt es aber vor das die HTML Befehle auf der Seite auf der ich den Inhalt der Felder ausgebe nicht "ausgeführt" werden. Sprich anstelle "Fetter Text" (<- in Fett) steht dort nur "<b>Fetter Text</b>".
Sofern die Spitzen Klammern in der DB stehen (prüf das mal ohne Browser in der Konsole o.ä.) und im Browser nicht als solche interpretiert werden, gehe ich davon aus, dass die im Ausgabefrontend (*) umgewandelt werden, z.B. wird aus
">" ein ">"
* wie Cheatah schrieb, eine Reklamtion dieses Teils wäre zu prüfen.
Ansonsten: Zeichen in DB speichern so roh (native) wie möglich, spitze Klammern als spitze Klammern usw., das ist so OK.
Hotte
Hallo Hotte, Hallo Cheatah,
ich habe mir das ganze jetzt über die Konsole angeschaut. Der Fehler liegt in der Übertragung in die Datenbank per ODBC, da in der Datenbank bereits merkwürdige Zeichen ankommen. Ich habe wohl ein Problem mit der Zeichenkodierung.
Wenn ich im ODBC Treiber das Character Set jetzt explizit auf UTF8 stelle, bekomme ich eine schöne Fehlermeldung die besagt das ich ein "incorrect string value: '\xDFe 3-9' habe...
Filemaker ist wohl etwas zu tolerant was die Annahme von Zeichen angeht. So wie es aussieht stehen dort Sonderzeichen oder was auch immer, die sich nicht mit dem ODBC Treiber bzw. der späteren Ausgabe vertragen.
Das würde auch erklären warum dies nicht bei allen Datensätzen, sondern nur bestimmten zutrifft. Ich vermute die Benutzer haben einfach über copy-and-paste Texte aus Word oder sonstwoher über die Zwischenablage in Filemaker kopiert, wo sie komplett mit Steuerzeichen abgelegt wurden, die jetzt Ärger machen.
Gruß
Sebastian
Das würde auch erklären warum dies nicht bei allen Datensätzen, sondern nur bestimmten zutrifft. Ich vermute die Benutzer haben einfach über copy-and-paste Texte aus Word oder sonstwoher über die Zwischenablage in Filemaker kopiert, wo sie komplett mit Steuerzeichen abgelegt wurden, die jetzt Ärger machen.
Nicht zu vergessen, dass es auf dem Mac einige seltsame Sonderzeichen gibt. Hatte ich auch schon meine Probleme mit, kann dir aber jetzt nicht mehr sagen, was das im einzelnen war. Wie wandelst du den die Mac Zeichen um?
Struppi.