Doc #54263 [Opn->Asn]: htmlspecialchars - charsets are not equivalent
| From: | aharvey@php.net | Date: | Thu, 17 Mar 2011 02:45:03 +0000 |
| Subject: | Doc #54263 [Opn->Asn]: htmlspecialchars - charsets are not equivalent | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-6089@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=54263&edit=1
ID: 54263
Updated by: aharvey@php.net
Reported by: anthon dot pang at gmail dot com
Summary: htmlspecialchars - charsets are not equivalent
-Status: Open
+Status: Assigned
Type: Documentation Problem
Package: Documentation problem
PHP Version: 5.3.5
-Assigned To:
+Assigned To: aharvey
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2011-03-16 03:35:46] anthon dot pang at gmail dot com
Description:
------------
---
From manual page:
http://www.php.net/function.htmlspecialchars#Parameters
---
For the purposes of this function, the charsets ISO-8859-1, ISO-8859-15,
UTF-8, cp866, cp1251, cp1252, and KOI8-R are effectively equivalent, as
the characters affected by htmlspecialchars() occupy the same positions
in all of these charsets.
---
This is misleading. (The paragraph was introduced by #49412.)
Example:
var_dump( htmlspecialchars( "\xe8", ENT_QUOTES, 'UTF-8' ) ) returns:
PHP 5.2.1: string(1) "�"
but in later versions:
PHP 5.2.6: string(0) ""
PHP 5.3.5: string(0) ""
Test script:
---------------
echo htmlspecialchars( "\xe8", ENT_QUOTES, 'UTF-8' );
Expected result:
----------------
I suggest removing the aforementioned paragraph from the manpage, and
add a note under Changelog or Return Values, stating that, as of php
5.2.5 (judging from php.net/ChangeLog-5.php), the function can return an
empty string if there are invalid byte sequences for the specified
charset.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=54263&edit=1