Frage

Ich habe gerne Dinge über ein Webformular in meinen XML -Dateien gespeichert, das von PHP und dem Simpledom.php abgeschnitten wird

Ich muss Gegenstände speichern, die in englischen Preisgestaltung entstehen, also brauche ich das englische Pfundzeichen. Wenn ich dies jedoch tue, passieren 2 Dinge:

  1. Es gibt den gespeicherten Preis als £ zurück

  2. Wenn ich es dann wieder speichere, ohne dass andere den SimpleDom -Parser ändert, dann wird Barfs und es entfernt jeden anderen Inhalt in der XML -Datei über das englische Pfundzeichen hinaus.

Die obere Zeile in meiner XML -Datei sieht aus wie

<?xml version="1.0" encoding="ISO-8859-1"?>

In der XML -Datei wird das £ gespeichert wie

&amp;Acirc;&amp;pound;

Soweit ich das sagen kann, sollte ISO-8859-1 das £ Anzeichen darin haben, so sehr verwirrt, warum dieses ACIRC in ihn kommt ....

Ich habe auf einem anderen Thread gesehen, dass jemand sagte, es versuche 8859-15 zu verwenden, aber das hat keinen Unterschied gemacht.

Irgendwelche Ideen Leute?

Prost Jas (komplette Nube für all dieses codierende Zeug)

War es hilfreich?

Lösung

Der Unicode -Codepunkt für £ ist u+00a3. In der UTF-8-Codierung ist es 0xC2 0xA3. Jetzt ist in ISO-8859-1 0xc2 Å und 0xa3 £. Irgendwo im Fluss wird das, was Sie eingeben, UTF-8, das als ISO-8859-1 interpretiert wird. Haben Sie sich angesehen, wie das "Form" die Daten codiert, bevor Sie Ihren PHP -Code erreichen?

Und außerdem, was macht diese Simpledom WRT -Wesenheiten? Â und £ sind keine gültigen XML -Unternehmen ohne Erklärung. Fügt Simpledom die Erklärungen hinzu?

Andere Tipps

Die Antwort von zweiundvierzig Jahren hat eines der Probleme definitiv behoben ... Ich habe Coding = ISO-8859-1 in das XML-DOC gesteckt, aber UTF-8 im Tag des HTML-Meta-Inhalts-Tags verwendet.

Eine andere Sache, die zu beachten ist, ob jemand auf diese Antwort stößt. Ich hatte auch brutale Probleme mit dem gekrümmten Zitat aus einem Windows -Dokument (Kopieren von Text von Word 2007 in das Feld HTML -Formular auf meiner Website). Es gibt einen großen Unterschied zwischen einem gekrümmten Zitat und einem Apostroph. Auf englischen Tastaturen interpretiert das Wort das Oberkranke (ein Apostroph) als einzelnes gekrümmtes Zitat. ISO-8859-1 hat keine solche Entität (es ist im Windows-1252-Standard "Standard"). Dies tötete meine XML -Dokumente, da sie von PHP aus dem Formfeld analysiert wurden. Die Lösung war einfach:

$var = htmlentities($var,ENT_QUOTES, "Windows-1252");

Andere Leute haben auf HTMLentites und Striptags hingewiesen ... aber ich habe 4 halbe Tage gebraucht, um all das zusammenzubringen. Hoffentlich sparen Sie jemanden etwas Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top