Visualizzazione risultati 1 fino 2 di 2

Discussione: Problema nella stampa di un campo utf_general_ci

  1. #1
    L'avatar di pharanoise
    pharanoise non è connesso Neofita
    Data registrazione
    25-01-2010
    Residenza
    Gorizia
    Messaggi
    4

    Predefinito Problema nella stampa di un campo utf_general_ci

    Salve a tutti, spero sia la sezione giusta, ho un problema in uno script php che fa utilizzo di database Mysql, ma non so esattamente quale dei due origini il problema.

    Ho una tabella, con un campo di tipo varchar, e collation utf8_general_ci.

    Per quanto ho capito, utf8_general_ci dovrebbe essere la codifica a cui in genere ci si riferisce con "unicode", o per lo meno, quello più diffuso, dovrebbe essere compatibile con ASCII, e codificare i caratteri con con un numero di byte variabile da 1 a 4, 1 se il carattere da rappresentare rientra tra quelli ASCII, di più se risulta essere un carattere più particolare.

    Il mio problema è che inserendo del testo codificato in unicode (direttamente da phpMyAdmin, a "mano"), in cui sono presenti alcuni simboli matematici o lettere greche, questi vengono rappresentati correttamente finchè li visualizzo da phpMyAdmin, ma al momento della stampa in una pagina php, questi vengono sostituiti con punti di domanda.

    Questo accade sia se la dichiarazione del charset nella pagina è corretta, sia se non lo è.

    Inoltre, se la dichiarazione del charset nella pagina non corrisponde a "UTF-8" gli altri caratteri (accentate incluse) vengono visualizzati correttamente.

    Se invece la dichiarazione del charset corrisponde a "UTF-8" subisco il solito problema delle lettere accentate (che diventano punti di domanda "racchiusi in un quadrato nero").

    Se provo a rimediare utilizzando:
    Codice PHP:
    htmlentities("testo preso dal database...", ENT_QUOTES, 'UTF-8');
    Non si presenta alcun errore, ma contrariamente a quanto ci si possa aspettare, il testo sparisce, non viene dato in output nemmeno un singolo carattere, come se non ci fosse alcun testo.

    Non so davvero dove sbattere la testa, sbaglio nell'impostare la collation nel database? A settare "UTF-8" come charset nella pagina php? O a utilizzare htmlentities per la stampa?

    Ringrazio per la pazienza, se avete letto fino a qui

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    phpMyAdmin causa spesso dei problemi con i charset. La cosa migliore è creare un'apposita pagina sul tuo sito per gestire gli inserimenti nel database.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •