Wie kann ich sehen, raw-bytes gespeichert in einer MySQL Spalte?

Ich habe eine MySQL-Tabelle korrekt gesetzt, um die UTF-8-Zeichensatz. Ich vermute, einige Daten eingefügt in einer meiner Spalten wurde doppelt kodiert. Ich erwarte, um zu sehen, ein non-breaking-space-Zeichen (UTF-8 0xC2A0), aber was bekomme ich, wenn die Auswahl in dieser Spalte aus dieser Tabelle ist vier Bytes (0xC3A2 0xC2A0). Das ist, was ich erwarten würde, um zu sehen, ob irgendwann jemand hatte, behandelt wurden, eine UTF-8 0xC2A0 als ISO-8859-1 dann versucht zu codieren wieder in UTF-8 vor dem einfügen in die MySQL.

Mein test oben, wo ich bin, sehen die vier Oktetts umfasst die Auswahl in dieser Spalte aus MySQL mit Perl-DBD::mysql. Ich würde gerne Perl und DBD::mysql aus der Gleichung zu überprüfen, dass diese vier Bytes sind eigentlich das, was MySQL gespeichert hat. Gibt es eine Möglichkeit, dies direkt mit einer SQL-Abfrage?

  • HEX hat es, und sieht aus wie ich war Recht über die doppelte Kodierung in der Tabelle. Werde ich müssen, wenn sich die upstream-system auf den Umgang mit den encoding-problem.
  • Ryan! Wie zum Teufel weißt du so viel über UTF8, dass Sie in der Lage sind, diese Vermutung richtig!?
InformationsquelleAutor Ryan Olson | 2009-12-10
Schreibe einen Kommentar