Ich habe eine einfache (benutzerdefinierte) CMS akzeptieren Markdown und zeigt es in einer Webseite. Funktioniert in php5.6 (mit dem ondrej/php5 ppa auf ubuntu 15.10). Die Mysql-Sortierung ist überall auf utf8 eingestellt.utf8 Codierung bricht bei der Aktualisierung von PHP5.6 auf PHP7.0
Aktualisieren Sie den Server auf php7.0 (ondrej/php), und es zeigt ungültige Zeichen an. Ich habe versucht, die relevanten mysql Tabellen und Felder zu utf8mb4/utf8mb4_unicode_ci ohne Glück zu migrieren.
Downgrade auf php5.6 und alles funktioniert gut. Ich habe eine Ahnung, es ist eine seltsame PHP-Einstellung, über die ich nicht weiß? php.ini default_collation = UTF-8. Konnte nichts anderes finden, das funktionierte. phpMyAdmin zeigt Müll an, egal welche Version von php oder Server Einstellungen, so dass es nicht viel hilft. Was könnte ich als nächstes versuchen?
Quelltext (kopiert von php5.6 gerenderte Seite)
아동 보호 정책에 대한 규정
This Code is part of the
gerenderte Ausgabe (von php7 und phpMyAdmin)
ì•„ë™ ë³´í˜¸ ì •ì±…ì— ëŒ€í•œ ê·œì •
This Code is part of the
Welche PHP MySQL-Bibliothek verwenden Sie und nutzen Sie das exakt gleiche Skript? (Wenn es das gleiche Skript ist, hat es zufällig Unterstützung für zwei verschiedene Bibliotheken und konfiguriert sie anders?) –
Wenn phpmyadmin Müll anzeigt, bedeutet das, dass Sie tatsächlich Müll in Ihrer Datenbank haben, weil Sie bisher die Codierung schlecht gehandhabt haben. Ein paar Hintergrundinformationen finden Sie in [Behandlung von Unicode in einer Webanwendung rückwärts] (http://kunststube.net/frontback/). – deceze
@deceze es sieht aus wie du bist richtig. Ich denke, ich habe Müll in der Tabelle. Ich habe den Testcode ausprobiert und es hat perfekt funktioniert. Ich sehe meinen Fehler noch nicht ganz, da ich denke, dass ich alle (wichtigen) Anweisungen dort befolgt habe. Also: Wie ermittle ich, welchen Zeichensatz ich tatsächlich in den Feldern habe? Es kann möglich sein, zu korrekten utf8 zu konvertieren? – Steve