#45581 [Ver->Csd]: htmlspecialchars() double encoding &#x hex items
| From: | lbarnaud@php.net | Date: | Sun, 10 Aug 2008 13:27:10 +0000 |
| Subject: | #45581 [Ver->Csd]: htmlspecialchars() double encoding &#x hex items | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-127854@lists.php.net to get a copy of this message | ||
ID: 45581
Updated by: lbarnaud@php.net
Reported By: funky2step at gmail dot com
-Status: Verified
+Status: Closed
Bug Type: Strings related
Operating System: Red Hat Enterprise Linux ES
PHP Version: 5.2.6
New Comment:
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2008-07-22 14:40:29] funky2step at googlemail dot com
Thanks for the prompt reply. I understood though that this function
with double encode arg set to false would not act on _any_ existing html
entities.
Is there a reason why it does not recognize these codes, or is it an
oversight/bug?
------------------------------------------------------------------------
[2008-07-21 16:01:23] jani@php.net
It's just that the function does not understand the hex entities. :)
------------------------------------------------------------------------
[2008-07-21 14:21:11] funky2step at gmail dot com
obviously that should have been $out = htmlspecialchars($str,
ENT_COMPAT, 'UTF-8', FALSE);
:)
------------------------------------------------------------------------
[2008-07-21 14:14:01] funky2step at gmail dot com
Description:
------------
Trying to use htmlspecialchars() on a string containing &#xHEX;
characters e.g. £
With double encode set to false, it still converts the & to &
Reproduce code:
---------------
$str = "£ one & two";
$out = htmlspecialchars($content, ENT_COMPAT, 'UTF-8', FALSE);
echo $out;
Expected result:
----------------
£ one & two
Actual result:
--------------
£ one & two
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45581&edit=1