Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Caratteri non interpretati

    Grande problema:
    molti utenti del mio sito inseriscono in un campo di testo dei testi copiati da editor di testo come word e alcuni caratteri come à ò è e gli apostrofi non vengono interpretati.

    Esiste una funzione o un modo per risolvere il problema?
    Grazie

  2. #2
    è più un problema di codifica della pagina:

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

  3. #3
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    E' si un problema di codifica dei caratteri...dato che è un problema molto comune e non proprio "semplice" da risolvere, a parte i tag, ti consiglio di leggere questa discussione, a mio avviso molto ben dettagliata su tale argomento...


  4. #4
    Ahimè, non so da che parte iniziare per sistemare il problema:
    • Il database ha collation latin1_swedish_ci - devo guardare quella di ogni riga, giusto?
    • Le pagine iso-8859-1 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    • L'editor con cui ho editato le pagine "Europa occidentale"


    Non so proprio da dove cominciare . Il sito è già pubblicato e il database contiente dei dati.

  5. #5
    Ecco la pagina che mi dà problemi.

    http://www.rinnovacommunity.altervis...hp?idimpresa=8

    Le lettere accentate non mi danno problemi, ho sbagliato. Il problema sono le virgolette e gli apici copiate da editor di testo.
    Magari basta usare una funzione str_replace in fase di input? :rollo:

  6. #6
    che funzione php usi per salvare i dati nel database?

    che funzione php usi per la visualizzazione?

  7. #7
    Originariamente inviato da serdominik
    che funzione php usi per salvare i dati nel database?

    che funzione php usi per la visualizzazione?
    Prima di inserire i dati nel database, li filtro con questa funzione
    function caratteriparticolari($stringa){
    $stringa = str_replace("à","&agrave;",$stringa);
    $stringa = str_replace("è","&egrave;",$stringa);
    $stringa = str_replace("ì","&igrave;",$stringa);
    $stringa = str_replace("ò","&ograve;",$stringa);
    $stringa = str_replace("ù","&ugrave;",$stringa);
    return $stringa;
    }
    e poi faccio un normale INSERT.

    Per la visualizzazione faccio una SELECT e poi stampo con echo.

  8. #8
    sbagli tutto.....
    incasini il codice....

    Per l'iserimento dei testi nel database devi usare così:

    Codice PHP:
    $pescodati=$_POST['testo'];
    $value=htmlspecialchars($pescodati); 
    Poi per la visualizzazione usa

    Codice PHP:
    echo nl2br($pescodati); 

  9. #9
    Originariamente inviato da serdominik
    sbagli tutto.....
    incasini il codice....

    Per l'iserimento dei testi nel database devi usare così:

    Codice PHP:
    $pescodati=$_POST['testo'];
    $value=htmlspecialchars($pescodati); 
    Poi per la visualizzazione usa

    Codice PHP:
    echo nl2br($pescodati); 
    Infatti, così è più corretto.
    Però il problema rimane. Anche i caratteri accentati non sono interpretati, se non uso quella funzione. E' un problema di codifica, ma non so come sistemarlo.

  10. #10
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Infatti non basta usare htmlspecialchars()...se i dati sono salvati nel db, e il db è a sua volta impostato con una codifica diversa da UTF-8, è veramente un bel problema...dovresti - e sinceramente non so come - andare a cambiare la codifica del db e quindi la codifica di tutto ciò che è salvato nel db stesso...veramente un bel casino, che credo necessiti di molto tempo...


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.