Gewusst wie: laden von XML bei PHP kann nicht auf die richtige Codierung?
Ich versuche, laden Sie eine XML-Quelle von einem remote-Standort, so habe ich keine Kontrolle über die Formatierung. Leider ist die XML-Datei, die ich versuche zu laden hat keine Kodierung:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <NODE> </NODE> </ROOT>
Wenn Sie versuchen so etwas wie:
$doc = new DOMDocument( );
$doc->load(URI);
Bekomme ich:
Input is not proper UTF-8, indicate encoding ! Bytes: 0xA3 0x38 0x2C 0x38
Ive blickte auf Möglichkeiten zu unterdrücken, aber kein Glück. Wie sollte ich diesen laden, so dass ich verwenden können, es mit DOMDocument?
InformationsquelleAutor | 2009-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie das Dokument Bearbeiten ('pre-process it"), um die Kodierung angeben, die es geliefert wird, indem eine XML-Deklaration. Was das ist, Sie ' ll haben zu prüfen, sich selbst, natürlich. Das DOM-Objekt sollte dann analysiert werden.
Beispiel XML-Deklaration:
Offensichtlich war es nicht UTF-8, oder wäre dies kein problem gewesen. Ich beziehe mich auf das entscheidende Wort 'Beispiel'. FYI. Diese codes nicht automatisch ableiten, ISO-8859-1.
InformationsquelleAutor Rushyo
Haben Sie zu konvertieren Sie Ihr Dokument in UTF-8, das einfachste wäre, die Nutzung utf8_encode().
DOMdocument Beispiel:
SimpleXML Beispiel:
Wenn Sie nicht wissen, die aktuelle Kodierung verwenden,mb_detect_encoding(), zum Beispiel:
Hinweise:
$doc->loadHTML
stattdessen können Sie weiterhin verwenden XML-header.Wenn Sie wissen, die Kodierung verwenden, iconv() zu konvertieren:
InformationsquelleAutor kenorb
Können Sie versuchen, mit der XMLReader Klasse statt. Der XMLReader ist speziell für XML und hat sich Optionen für die Einstellung der Kodierung (einschließlich "null" für keine).
InformationsquelleAutor Steven Surowiec
Lief ich in einer ähnlichen situation. Ich war immer eine XML-Datei, die sollte UTF-8 codiert sein, aber es waren auch einige schlechte ISO-Zeichen.
Schrieb ich den folgenden code zu Kodieren, die schlechte Zeichen in UTF-8
Ich geschrieben über die Lösung im detail an:
http://dev.strategystar.net/2012/01/convert-bad-characters-to-utf-8-in-an-xml-file-with-php/
InformationsquelleAutor JV-