ID:               20934
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Verified
 Bug Type:         Strings related
 Operating System: Red hat linux 8.0
 PHP Version:      4CVS-2002-12-11 (dev)
 New Comment:

Is this problem also in the PHP 4.3.0RC3?
If so, this should be resolved before release.


Previous Comments:
------------------------------------------------------------------------

[2002-12-12 07:10:58] [EMAIL PROTECTED]

Thanks for your effort again.
Verified this behaviour.


------------------------------------------------------------------------

[2002-12-11 06:58:14] [EMAIL PROTECTED]

I used the script bellow for testing (calling it from MS Internet
Explorer to directly see the xml output).

Calling it without parameters one should see a simple xml document
showing a string in latin1.

Calling it with "?charset=utf8", the script correctly converts the
string from latin1 to UTF-8 but after using "htmlspecialchars" it goes
back to latin1, and the xml becomes invalid. (put a comment on the
"htmlspecialchars" line after the character conversion and the xml will
show up in UTF-8 without problem).

<?php

$string = "Hello from S�o Paulo";

$charset = isset($_GET["charset"]) ? $_GET["charset"] : "latin1";

if ($charset == "utf8")
{
  $charset_code = "UTF-8";
 
  $show_string = mb_convert_encoding($string, "UTF-8", "ISO-8859-1"); 
  $show_string = htmlspecialchars($show_string, ENT_COMPAT, "UTF-8");
}
else
{
  $charset_code = "ISO-8859-1";

  $show_string = htmlspecialchars($string);
}

header ("Content-type: text/xml");

echo "<?xml version='1.0' encoding='$charset_code' ?>\n";

?>
<test>

<?php print($show_string); ?>

</test>

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=20934&edit=1

Reply via email to