mir dies mit:Decode Unicode charmap (höchstwahrscheinlich nicht-Standard) mit PHP
\u00c3\u0083\u00c2\u00b6
Das steht für das Deutsch ö
Charakter (ö
in html).
Mein Problem ist, dass ich nicht weiß, in welcher Kodierung es ist, versuchte ich mehrere Entschlüsselungsmethoden (einschließlich json_decode und mb_convert_encode('\u00c3\u0083\u00c2\u00b6','HTML-ENTITIES','UTF-8');
), um zu ö
Zeichen zu gelangen, aber kein einziges funktionierte.
Ich kann nicht nachschlagen, wie dies an erster Stelle codiert wurde, aufgrund der Tatsache, dass dies von einem Datenbankabbild stammt, für das der Quellcode nicht verfügbar ist.
Diese Frage ist nicht ein Duplikat How to decode Unicode escape sequences like "\u00ed" to proper UTF-8 encoded characters?
aufgrund der Tatsache, dass die charmap keine gültigen UTF-8 oder UTF-16 zu sein scheinen und mit einem der daher nicht decodiert werden kann, Methoden in der verknüpften Frage.
Das ist einige ernsthafte Mojibake los dort. So etwas wie UTF-8, interpretiert als Latin-1, codiert in Unicode-Escapes oder etwas in dieser Richtung. Definitiv etwas, das du an der Quelle reparieren solltest, wenn es dafür nicht zu spät ist. – deceze
Ich brauche nur diesen Speicherauszug, ich muss ihn nicht erneut importieren oder etwas anderes, was mich dazu zwingen würde, den Code zu reparieren (den ich aus dem gleichen Grund nicht habe). Gibt es irgendeine Möglichkeit, dieses Chaos irgendwie zu entschlüsseln? Ideal mit PHP. Vielen Dank! – Michael
Probieren Sie zunächst einige Kodierungseinstellungen für die Tabelle aus, in der Daten gespeichert sind. 'ALTER TABLE [Tabelle] CONVERT TO CHARACTER SET [uft8_general_ci, ucs2_general_ci, etc.];' Siehe: https://dev.mysql.com/doc /refman/5.5/en/charset-charsets.html. Wenn Ihre Tabellenzeichencodierung nicht mit der Codierung übereinstimmt, als die Daten gespeichert wurden, erhalten Sie alle möglichen Probleme wie diese. Auf die eine oder andere Art müssen Sie die ursprüngliche Codierung identifizieren. –