Re: htmlentities is incomplete: does not cover rsquo etc

From: Date: Sat, 14 Mar 2009 01:05:58 +0000
Subject: Re: htmlentities is incomplete: does not cover rsquo etc
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-290026@lists.php.net to get a copy of this message
Thanks Jan, it's much clearer now. My knowledge about character encodings has multiplied 100-fold in the last 24 hours' research. Would it be a good idea for the PHP Manual to address some of these issues, by explaining good practice in encoding arbitrary user input in forms (for example), for the benefit of those, like me, for whom character sets are a bit of a black art? Also I still cannot persuade get_html_translation_table to list those non-Latin1 entities. This is not an important issue, since it appears to be only an information function, but it would be nice if it were consistent with htmlentities and html_entity_decode. Eddie From Jan G.B. 13/03/2009 17:27:
2009/3/13 Heddon's Gate Hotel <hotel@heddonsgate.co.uk>:
The string function htmlentities seems to have very incomplete coverage of the HTML entities listed in the HTML 4 spec. For example, it does not know about rsquo, lsquo, rdquo, ldquo, etc. This is confirmed by looking at the output of get_html_translation_table, which does not list these entities. My impression is that it covers those HTML entities that are in ISO-8859-1, but not the others. Is this deliberate? If so, the Manual is misleading because it suggests that all HTML entities are covered. Otherwise, is this a bug?
Well, If you specify the input charset you'll have no problem at all. ;) <?= htmlentities('string with UTF-8: ±ªÐº×N>>µ»n“¢µ€jæ', ENT_QUOTES, 'UTF-8'); ?> Latin1 AKA ISO-8859-1 doesn't have ldquo nor bdquo nor ndash and alike. Regards,


« previous php.general (#290026) next »