#45581 [Ver->Csd]: htmlspecialchars() double encoding &#x hex items

From: 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

« previous php.bugs (#127854) next »