Существует параметр набора символов в htmlspecialchars, но версия декодирования не имеет его. По сравнению с подобным htmlentities, кодированием и декодируют функции, у обоих есть параметр набора символов. Таким образом, я не могу выбрать, к какому набору символов я декодирую назад?
htmlspecialchars()
требует параметр charset только при преобразовании кодовых таблиц, специальные символы которых не находятся в позициях "по умолчанию". Таким образом, кодовые таблицы ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 и KOI8-R не требуют параметра charset.
htmlspecialchars_decode()
преобразует сущности (& " ' < >
) обратно в их символьный эквивалент и поэтому не требует передачи charset.
Поскольку htmlentities()
преобразует "все" символы в их эквивалент, в htmll_entity_decode()
можно передать кодовую таблицу, чтобы убедиться, что сущности декодируются в соответствующий символ кодовой таблицы.
Просто потому, что он преобразует только & " ' < >
и ничего больше.
Если вы хотите декодировать все сущности, используйте html_entity_decode(), вы можете передать charset в качестве третьего параметра.