Ich kam durch ein verwirrendes Problem des Geistes mit mysql Kodierung heute und würde die Ideen schätzen, wie man das weiter debuggt.Mysql-Unicode-Zeichen sind in Ordnung, aber keine Akzente
Ich musste eine alte Perl-Anwendung aktualisieren, mit mysql 5.6, die ursprünglich nur auf Englisch und zu dem ich einige Unicode-Unterstützung (für Khmer-Skript) hinzufügen musste.
Ich dachte, es wäre am besten, eine Test-Installation zu machen. Ein Dump der prod db, importiert in eine Test-db, änderte den Zeichensatz der Tabellen, die die Unterstützung von utf8 collect utf8_unicode_cli benötigten.
Alles funktioniert gut, so ging für die Produktion gelten. Lief die sql Migrationsskripte, um Zeichensätze zu ändern, den neuen Code zu implementieren und ... khmer Zeichen speichern/zeigen gut, aber ältere Zeichen werden als Fragezeichen mit schwarzem Quadrat angezeigt.
Was mir wirklich ein Rätsel ist, dass
Test und prod laufen auf den gleichen (Fenster) Feld gleichen MySQL-Server-Instanz
beide Test und prod Datenbanken haben die gleichen charsets et Sortierungs
für die Tabelle in Frage, Test und prod zeigen Tabelle Anweisungen erstellen sind identisch
der gleiche Code mit Test funktioniert gut, aber zu prod angeschlossen nicht
Ich dachte, vielleicht die Originaldaten wurden in dem Prozess verstümmelt so gelöscht, und es über den App-Schnittstelle wieder einsetzen. Arbeitet noch am Test, aber nicht an Prod.
Derselbe Code funktioniert auf Test, so Code ist wahrscheinlich nicht das Problem. Beide auf der gleichen Server-Instanz so wahrscheinlich nicht Server-Konfiguration Problem. Khmer-Skript funktioniert gut, wahrscheinlich nicht ein utf "Konfiguration" Problem. Neue Daten werden falsch behandelt, also wahrscheinlich kein Datenmigrations-/Konvertierungsproblem.
So 2 Fragen:
ist das Fragezeichen mit schwarzem Quadrat eines Zeichen der doppelten Codierung oder einfach falsch Codierung
wie kann ich die weiter debuggen? Anyway zu sehen "rohen" mysql gespeicherten Daten zum Beispiel, so dass ich vergleichen könnte?
Jede Eingabe sehr geschätzt.