Jump to content


Storing <textarea> text in an XML file

  • Please log in to reply
1 reply to this topic

#1 elg2001

  • Members
  • PipPip
  • Member
  • 11 posts

Posted 10 May 2006 - 07:01 PM

I've done alot of looking into this. Wikipedia's website sends UTF-8 text and can embed unicode characters in a page (such as a greek delta symbol). However, when I try to accomplish the same thing in PHP, when I submit a delta symbol using a text area and an html form with method="post", it gets stored in an XML file. Then when I try to view what i have submitted in html, I see Δ where the delta symbol should be. The code to store the <textarea>'s content is as follows:

$body = $doc->createElement('body');
$bodytext = $doc->createTextNode(utf8_encode(str_replace('  ', '&nbsp;&nbsp;', str_replace("\n", '<br />', str_replace("\r", '<br />', str_replace("\r\n", '<br />', htmlentities(stripslashes($_POST['body']))))))));
$doc->documentElement->insertBefore($post, $doc->documentElement->firstChild);
$doc->formatOutput = false;

I'm using the utf8_encode() function because without it there, PHP throws an exception that the submitted character is not a valid XML character. The XML file's encoding is UTF-8, declared as follows:

$doc = new DOMDocument('1.0', 'UTF-8');

Can anyone steer me in the right direction?

#2 elg2001

  • Members
  • PipPip
  • Member
  • 11 posts

Posted 11 May 2006 - 01:04 AM

and by the way, if I DO use utf8_encode(), it works. however, all non-ascii characters are replaced with junk characters, so I end up with a valid XML document but an invalid XHTML document.

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users