• User

    PHP, charset e lettere accentate, problema che non mi spiego

    Ho il classico problema delle lettere accentate che non vengono codificate bene dal browser, ma non riesco a venirne a capo.

    Nell'header delle pagine web c'è questo:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    

    mentre nel php info mi restituisce i seguenti parametri:

    default_charset:   local value:no value	master value:no value
    HTTP_ACCEPT_LANGUAGE	it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
    HTTP_ACCEPT_CHARSET	ISO-8859-1,utf-8;q=0.7,*;q=0.3
    Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.3
    _SERVER["HTTP_ACCEPT_CHARSET"]	ISO-8859-1,utf-8;q=0.7,*;q=0.3
    
    

    Preciso che le lettere accentate nell'html funzionano perfettamente, i dati estrapolati dal db allo stesso modo non hanno problemi, ma se scrivo:

    [PHP]echo "èòàùé";[/PHP]

    vedo i classici punti interrogativi. 😞

    L'editor di testo e impostato per salvare file di testo in UTF-8.

    Non riesco a capire! ❌

    Ciao!


  • Super User

    Prova ad inserire in testa allo script:

    
    header('Content-type: text/html; charset=utf-8');
    
    

  • User

    @ayrton2001 said:

    Prova ad inserire in testa allo script:

    
    header('Content-type: text/html; charset=utf-8');
    
    

    Niente da fare. :?:

    Ho anche provato ad aggiungere la seguente riga nel file .htaccess:

    AddDefaultCharset UTF-8
    

    ma il problema persiste ancora.
    C'è qualcos'altro da controllare ancora?


  • Super User

    Per visualizzare le lettere accentate tramite php occorre utilizzare htmlspecialchars()

    
    echo htmlspecialchars("èòàùé");
    
    

  • User

    @ayrton2001 said:

    Per visualizzare le lettere accentate tramite php occorre utilizzare htmlspecialchars()

    
    echo htmlspecialchars("èòàùé");
    
    

    Ho utilizzato questa funzione infatti per risolvere il problema, ma possibile non ci sia modo di far andare il charset giusto?


  • Super User

    @mecha said:

    Ho utilizzato questa funzione infatti per risolvere il problema, ma possibile non ci sia modo di far andare il charset giusto?

    Non è una questione di charset, ma di html. Infatti in html i caratteri accentati sono rappresentati dai relativi caratteri speciali (à etc...)
    Infatti se nella pagina vedi i punti interrogativi, nel sorgente html vedi i caratteri accentati.