Voglio solo convertire i caratteri non codificati in entità html, senza influire sulle entità che sono già presenti. Ho una stringa che ha già codificato entità, ad es .:htmlentities() Entità di doppia codifica nella stringa
gaIUSHIUGhj>‐ hjb×jkn.jhuh>hh> …
Quando uso htmlentities()
, il &
all'inizio di entità viene codificato di nuovo. Questo significa ‐
e altre entità hanno il loro &
codificato &
:
×
Ho provato decodifica la stringa completa, quindi la codifica di nuovo, ma non sembra funzionare correttamente. Questo è il codice che ho provato:
header('Content-Type: text/html; charset=iso-8859-1');
...
$b = 'gaIUSHIUGhj>‐ hjb×jkn.jhuh>hh> …';
$b = html_entity_decode($b, ENT_QUOTES, 'UTF-8');
$b = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $b);
$b = htmlentities($b, ENT_QUOTES, 'UTF-8');
Ma non sembra funzionare nel modo giusto. C'è un modo per prevenire o impedire che ciò accada?