alex4284
Goto Top

XML Entität - htmlentities

Hallo.

Ich habe ein XML Dokument. Dieses wird mit Inhalten aus einer Datenbank gefüllt.

Steht in der Datenbank nun ein Eintrag wie "blabla>" dann wird das von XML als
Fehler in der Entität gewertet...


Klar könnte ich jetzt auf die Unicodetabelle zurückgreifen (&#000;) <- dann würde es gehen...

Gibt es nicht eine Möglichkeit (Funktion), dass ich mit PHP gleich schon den Unicode
String in die Datenbank schreibe?

So was wie htmlentities($str) (funktioniert nicht...) nur eben dann unicode($str)...

Übrigens: mit utf8_encode($str) klappts nicht...


Schönen Tag noch...


Alex

Content-ID: 132740

Url: https://administrator.de/contentid/132740

Ausgedruckt am: 26.11.2024 um 06:11 Uhr

bytecounter
bytecounter 05.01.2010 um 12:56:05 Uhr
Goto Top
Hallo Alex,

eine Funktion gibt es meines Wissens nach nicht, aber schau Dir mal folgenden Link an:
http://xhtmlforum.de/32968-php-xhtml-und-unicode.html

Weiter unten ist eine Lösung die ich auch schon in abgewandelter Form genutzt habe. Wenn ich Zeit finde, verallgemeinere ich meine Lösung und poste die hier.

vg
Bytecounter
dog
dog 05.01.2010 um 15:35:58 Uhr
Goto Top
Du rennst hier ein bisschen in die falsche Richtung.

In die Datenbank sollten immer die ursprünglichen Werte und nichts was speziell für HTML/XML escapt worden ist.
Sowas macht später nur Probleme, wenn du mit weiteren Formaten arbeitest.

2. Solltest du dir entweder mal http://de.wikipedia.org/wiki/CDATA oder http://www.php.net/manual/en/function.htmlspecialchars.php angucken

Grüße

Max
Alex4284
Alex4284 05.01.2010 um 21:56:22 Uhr
Goto Top
Hallo.

Da hab ich mich leider falsch ausgederückt.
Natürlich sind meine Einträge immer im utf8 Format in der Datenbank vorhanden...

Das mit den htmlentities war mit der Abfrage gemeint.

Aber du kannst natürlich nicht wissen, wies in meiner DB aussieht.

Zurück zum Thema:

Mittlerweile konnte ich das Problem fast lösen:
<text><![CDATA[test]]></text>

XML stellt CDATA für die reine Textausgabe zur Verfügung.
Dennoch werden leider nicht alle -in Unicode umgewandelte - Sonderzeichen wie µ, #,...
wieder korrekt vom Browser dargestellt.


Denke, da werde ich auf eine Funktion zurückgreifen, die diese Zeichen wirklich in Unicode
&#xxx; umwandelt.


Schönen Abend noch,


Alex
dog
dog 05.01.2010 um 22:21:54 Uhr
Goto Top
Du hast aber schon das Encoding in den XML-Header geschrieben UND geprüft, dass es mit dem vom HTTP-Server gesendeten übereinstimmt?

<?xml version="1.0 encoding="utf-8"?>