• User Attivo

    Problema htmlentities (caratteri accentati)

    Salve, vi scrivo per chiedervi una mano in quanto non sono molto esperto dei settaggi sul server.

    In pratica ho cambiato il server e da quando sono sul nuovo server tutti i caratteri accentati come à,ò,è,ù e tutti gli altri mi compaiono come un punto interrogativo.

    Ho notato che inserendo htmlentities() prima delle stringhe i caratteri si sistemano però non vorrei sconvolgere tutta la programmazione in php andando ad inserire htmlentities dappertutto.

    Credo che si possa risolvere facilmente il problema facendo alcuni settaggi sul server come era prima sul mio vecchio server.

    Qualcuno mi sa dire come posso fare?
    Grazie.


  • Moderatore

    Devi settare il character set nelle pagine html. Htmlentities funziona perchè converte tutto in ASCII 7 bit e il resto lo rappresenta tramite codice html ( quelli &#xxx).


  • User Attivo

    Ciao Paolino, grazie per la risposta!
    Quando dici che devo settare il charset nella pagine intendi questo:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    L'ho gia fatto e sul server nella configurazione di apache e in php.ini ho settato rispettivamente AddDefaultCharset UTF-8

    e default_charset = "UTF-8"

    Ma il tutto ancora non va...
    Sul vecchio server c'era qualche impostazione che sistemava il problema e che io ovviamente non conosco.


  • Moderatore

    L'unica spiegazione è che mentre la pagina web dichiara di essere codificata in UTF-8, il server sputa fuori roba che non è UTF-8 ma un altro charset. AddDefaultCharset indica appunto il charset di default, ma le applicazioni php possono fare quello che gli pare in ogni caso.


  • User Attivo

    Quindi non esiste nessuna altra opzione che io non conosco?


  • Moderatore

    In un normale setup, i responsabili possono essere: webserver, sistema di scripting, cms, html.

    La cosa migliore da fare è provare con firefox a cambiare manualmente i charset, provando innanzitutto con iso-8859-1, iso-8859-15 e win1252. Se settando uno di questi lo visualizza bene, allora sai qual'è l'inghippo.