PDA

View Full Version : [PHP] htmlentities() mi converte male le entità HTML


Herod2k
21-01-2007, 16:21
sto cercando di utilizzare il comando htmlentities() per convertire i caratteri speciali in entità HTML, però non riesco.

Esempio:
se do: echo htmlentities("è") come output ho: è invece di è
la cosa che mi lascia perplesso è che se riconverto le entità in caratteri mi da i caratteri giusti:
echo html_entity_decode("è") mi da é :eek: :eek: :eek: ovviamente il browser mi interpreta è con una A maiuscola con il tilde e accanto due punti...

Come risolvo...? Dove sbaglio?

Grazie

H2K

kk3z
22-01-2007, 16:00
Puoi risolvere il problema impostando la codifica caratteri del browser a "ISO-8859-1" o forzandola nel codice HTML tramite:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

andbin
22-01-2007, 16:31
sto cercando di utilizzare il comando htmlentities() per convertire i caratteri speciali in entità HTML, però non riesco.

Esempio:
se do: echo htmlentities("è") come output ho: &Atilde;&uml; invece di &egrave;Perché molto probabilmente quella "è" è codificata in UTF-8 (cioè stai scrivendo il sorgente in UTF-8).

La funzione htmlentities può ricevere un terzo parametro che indica il charset della stringa in input.

Vedi anche una mia risposta <qui> (http://www.hwupgrade.it/forum/showthread.php?t=1385529).

Herod2k
23-01-2007, 09:12
grazie ragazzi il problema era proprio nell'UTF-8

ho risolto lasciando il documento in UTF-8 e aggiungendo due parametri ai comandi:

htmlentities("é",ENT_NOQUOTES,'utf-8')

e

html_entity_decode ("&egrave;",ENT_NOQUOTES,'utf-8')

cosi funzionano perfettamente.

Grazie ancora

H2K