There is a charset parameter in htmlspecialchars but the decode version does not have it. In comparison to the similar htmlentities, the encode and decode functions both have the charset parameter. So I can't choose what charset I am decoding back to?
views:
108answers:
2Simply because it only converts & " ' < >
and nothing else.
If you want to decode all entities, use html_entity_decode(), you can pass the charset as the third parameter to it.
htmlspecialchars()
requires the charset parameter only when converting charsets who's special characters are not in the 'default' positions. Hence, charsets ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, and KOI8-R do not require the charset parameter.
htmlspecialchars_decode()
converts entities (& " ' < >
) back to their character equivalent and therefore does not need to be passed a charset.
As htmlentities()
converts 'all' characters to their equivalent entity, a charset can be passed in html_entity_decode()
to ensure the entities are decoded to the relevant character in the charset.