Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239

    htmlentities : dove sbaglio ?

    ciao a tutti ho realizzato un piccolo script banale per testare la funzione htmlentities (credo mi dia dei problemi...):

    codice:
    <?php
    $a = "à è ì ò ù ";
    $b = htmlentities($a) ;
    echo "$b";
    ?>
    quando lo apro con ff mi da questo:

    codice:
    à è ì ò ù
    :master:

    io però mi aspettavo un altro risutato:

    è normale ? dov'è l'errore ?

    ciao grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: htmlentities : dove sbaglio ?

    Originariamente inviato da sandu
    quando lo apro con ff mi da questo:

    codice:
    à è ì ò ù
    :master:

    io però mi aspettavo un altro risutato:

    è normale ? dov'è l'errore ?
    Non è un errore della htmlentities!!
    Al 99,9% (non ne posso essere completamente sicuro) hai scritto quel sorgente usando un editor che utilizza la codifica UTF-8.

    Se vuoi esserne sicuro, prova (sempre con quello stesso editor) a mettere:

    $b = htmlentities($a, 0, "UTF-8") ;

    e vedrai che funziona.

    htmlentities interpreta per default i caratteri secondo il charset ISO-8859-1. Quindi: o scrivi il sorgente usando questo set di caratteri oppure usi il terzo parametro.

    L'output corretto che si vorrebbe avere è:

    &agrave; &egrave; &igrave; &ograve; &ugrave;

    che è appunto la conversione in "entità" dei caratteri accentati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239

    Re: Re: htmlentities : dove sbaglio ?

    Originariamente inviato da andbin
    Non è un errore della htmlentities!!
    Al 99,9% (non ne posso essere completamente sicuro) hai scritto quel sorgente usando un editor che utilizza la codifica UTF-8.
    CENTRATO

    ho usato bluefish e controllando ho visto che usa proprio utf-8 ...



    scusa ma in linea generale quale codifica è più corretto /comodo usare ?

    grazie mille

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Re: Re: htmlentities : dove sbaglio ?

    Originariamente inviato da sandu
    scusa ma in linea generale quale codifica è più corretto /comodo usare ?
    Beh, dipende.

    Nel tuo caso sopra, htmlentities restituisce testo ASCII puro (ci sono solo spazi, '&' e delle lettere), quindi non ci sarebbero problemi.

    Il fatto è che il browser dovrebbe essere avvertito del set di caratteri mettendo una linea (nel HEAD) così:

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

    Se metti così, puoi usare il tuo editor che usa UTF-8 e scrivere i caratteri accentati nella pagina anche senza usare htmlentities.

    Quindi, in linea generale: &aacute, &egrave, ecc... vanno sempre bene e in ogni caso. Se poi il documento specifica un set di caratteri ben preciso, sei libero di inserire direttamente il carattere speciale secondo quel set.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.