- Home
- Categorie
- Coding e Sistemistica
- PHP
- Visualizzazione scorretta degli accenti
-
Visualizzazione scorretta degli accenti
Ho uno strano problema, non so neppure se questa sia la sezione più appropriata per parlarne.
Praticamente ho creato una pagina con un foglio di stile scaricato da internet (non ricordo da dove, ma non è questo il problema).
Ora se all'interno delle pagine inserisco un testo statico, va tutto ok, ma se inserisco testo da un database, allora viene visualizzato scorrettamente. In particolare il problema si ha con le parole accentate.Es.
Se scrivo in modo statico la parola "attività", questa viene visualizzata correttamente.
Ma se la parola "attività" è estrapolata da un database, viene visualizzata con un simbolo al posto della à.Non capisco il problema
Qualcuno saprebbe illuminarmi?
-
Ciao freebreathe
probabilmente il tuo database, o comunque la tabella specifica, non è impostata con codifica idonea (latin/ISO 8859-1), magari è impostata come utf-8.
Il consiglio che posso darti è quello di trasformare in entità HTML le lettere accentate così da risolvere eventuali, anche futuri, problemi, e questo lo puoi fare utilizzando la funzione htmlentities()
In questo modo "attività" verrà salvato come "attività" e, anche qualora sposterai il tuo dominio su server che non supportano la codifica ISO 8859-1, non avrai problemi di sorta
-
Eppure aprendo la tabellacon phpmyadmin, il testo "attività" è salvato correttamente.
Ho fatto una prova e se lo visualizzo senza utilizzare il css è corretto.
-
@Samyorn said:
Il consiglio che posso darti è quello di trasformare in entità HTML le lettere accentate così da risolvere eventuali, anche futuri, problemi, e questo lo puoi fare utilizzando la funzione htmlentities()
Con questa funzione effettivamente gli accenti tornano al loro posto.
Però il problema si pone quando visualizzo delle stringhe che hanno tag html all'interno.Per esempio
*Rivoltosi all'assistenza telefonica, l'operatore all'altro capo del filo ha riconosciuto che s�, **in effetti c'era stato un errore ***viene visualizzato
Rivoltosi all'assistenza telefonica, l'operatore all'altro capo del filo ha riconosciuto che sì, <B itxtvisited="1">in effetti c'era stato un errore</B>.
Come si può ovviare?:?
-
In visualizzazione prova ad usare la funzione html_entity_decode
-
Ho provato, ma continua a non funzionare
-
Risolto. L'errore era nel codice html.
Ho cambiato questa riga[html]<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />[/html]
con
[html]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
[/html]