Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    problema con caratteri accentati e tag

    Salve a tutti ho un problema, ho una textarea nel quale inserisco del testo (con eventuali caratteri accentati: òàùèì) e dove ho l'esigenza di inserire anche tag html (ad esempio link o download di file).

    Il problema è che trattando il testo con la sequenza per l'inserimento nel DB:
    addslashes(urlencode(htmlentities($testo)));

    ed in fase di lettura con:
    stripslashes(urldecode(html_entity_decode($testo)) );

    ottengo che in output vedo i caratteri speciali ò à ù è ì ma i tag mi vengono interpretati come testo, viceversa se non eseguo le istruzioni in rosso i tag mi vengono interpretati come tag html, ma non visualizzo i caratteri speciali ad esempio la parola più la vedo cosi: pi.

    Esiste qualche istruzione o sequenza di istruzioni che dia il giusto compromesso tra tag e caratteri speciali?

  2. #2
    Forse sto dicendo una vaccata, ma se all'inizio hai scritto

    Codice PHP:
    addslashes(urlencode(htmlentities($testo))); 
    Perché poi non scrivi

    Codice PHP:
    html_entity_decode(urldecode(stripslashes($testo))); 
    Invece di

    Codice PHP:
    stripslashes(urldecode(html_entity_decode($testo))); 
    ?

  3. #3
    se faccio cosi non funziona proprio

  4. #4
    E' sbagliato l'approccio. Non puoi usare htmlentities(). Devi PRIMA predisporre il database e i tuoi file per lavorare in UTF-8 e POI occuparti delle entità di carattere (e SOLO di quelle codificate da htmlspecialchars()).

    Quindi:

    1. Il database, le singole tabelle e i singoli campi di testo delle tabelle (CHAR, VARCHAR, TEXT, ecc.) vanno creati con CHARACTER SET utf8 e COLLATE utf8_general_ci.

    2. I tuoi file (XHTML, PHP, ASP, o altro) vanno salvati con la codifica UTF-8 SENZA BOM (Byte Order Mark che causa problemi a molti browser). Se non salvi il file con questa codifica, la cosa non potrà funzionare!

    3. In tutte le tue pagine va inserito il meta tag che specifica il character set usato: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />.

    I dati vanno inseriti così come sono nel database, senza codificarli con funzioni PHP. Quando li leggi invece (per popolare i campi del form o visualizzarli nelle pagine) devi usare htmlspecialchars($dato,ENT_NOQUOTES,'UTF-8') (se il dato viene visualizzato in un campo di form, al posto di ENT_NOQUOTES usa ENT_COMPAT).

  5. #5
    ok grazie mille per le spiegazioni sei stato molto chiaro, solo alcuni chiarimenti

    2. I tuoi file (XHTML, PHP, ASP, o altro) vanno salvati con la codifica UTF-8 SENZA BOM (Byte Order Mark che causa problemi a molti browser). Se non salvi il file con questa codifica, la cosa non potrà funzionare!


    COME FACCIO???? c'e qualche funzione apposta?

  6. #6
    Devi usare un editor che ti permetta di decidere che codifica usare per i file. Se usi PSPad basta che imposti UTF-8 nel menu Formato.

  7. #7
    io uso dreamweavare come posso fare?

  8. #8
    Dreamweaver è un pò purciaro, detto alla romana, bisogna andare su Modifica -> Preferenze

    Quì vai su Nuovo documento e in Codifica predefinita scegli Unicode (UTF-8).

    Tericamente da questo momento quando crei un nuovo documento non solo automaticamente mette nell'header la codifica, ma dovrebbe anche salvare il file in codifica utf8.

  9. #9
    ciao senti ti ringrazio per tutti i suggerimenti che mi hai postato, però debbo dirti, mio malgrado, che non funziona in quanto mi compaiono bene tutti i caratteri accentati, ma i tag me li interpreta come testo e quindi me li da in output cosi come li scrivo

  10. #10
    ERRATA CORRIDGE

    Chiedo scusa all'utente Debiru e a coloro che sono interessati a questa conversazione, in quanto ho ripercorso tutti i passi postati da Debiru e funziona perfettamente, sia caratteri speciali che tag html. GRAZIE MILLE PER LE DRITTE!!!!!

    alla prossima

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 © 2025 vBulletin Solutions, Inc. All rights reserved.