Visualizzazione risultati 1 fino 4 di 4

Discussione: Codifica sballata col database..

  1. #1
    Guest

    Question Codifica sballata col database..

    Sicuramente questa domanda è già stata proposta, ma non sono riuscito a trovare risposte esaurienti
    premetto che:

    • Il mio editor php lavora in utf-8
    • su ogni pagina ho messo il metatag che indica di usare il charset utf8
    • nelle mie tabelle uso come default la collation utf8-general-ci


    Quando inserisco i dati tramite query e vado a vederli in phpMyadmin vedo le lettere accentate sballate, mentre se leggo tali dati e li stampo nelle mie pagine web invece vedo tutto correttamente...
    Se inserisco in phpMyadmin delle lettere accentate vedo tutto correttamente, ma quando li richiamo nelle pagine web mi compare il simbolo di caratttere sconosciuto.. a cosa è dovuto?

    grazie per le risposte
    Ultima modifica di rainz : 26-11-2011 alle ore 19.12.34

  2. #2
    Guest

    Predefinito

    Dopo la connessione, scrivi questa funzione:
    Codice PHP:
    mysql_set_charset('utf8', $resource);
    dove $resource è la variabile di connessione con mysql_connect().

    Poi devi al momento dell'inserimento, devi codificare il contenuto e puoi farlo con utf8_encode() oppure inserendo anche le entità:
    Codice PHP:
    trim(htmlspecialchars(str_replace(array("\r\n", "\r", "\0"), array("\n", "\n", ''), $string), ENT_COMPAT, 'UTF-8'))
    dove $string è la stringa da salvare

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Dopo la connessione, scrivi questa funzione:
    Codice PHP:
    mysql_set_charset('utf8', $resource);
    dove $resource è la variabile di connessione con mysql_connect().

    Poi devi al momento dell'inserimento, devi codificare il contenuto e puoi farlo con utf8_encode() oppure inserendo anche le entità:
    Codice PHP:
    trim(htmlspecialchars(str_replace(array("\r\n", "\r", "\0"), array("\n", "\n", ''), $string), ENT_COMPAT, 'UTF-8'))
    dove $string è la stringa da salvare
    grazie della dritta, avevo intuito che il problema era nel modo in cui transitavano i dati dallo script al database, ora ho forzato il linguaggio di tutte le query in utf-8 e vedo tutto correttamente, sia nel mio sito che in myadmin!

    per quanto riguarda la codifica in utf8 che mi hai consigliato nel secondo punto penso sia una cosa superflua perchè poi mi ritrovo caratteri strani sia in myadmin che nel sito (è come se lo facesse due volte insomma) e quindi ho tralasciato..

  4. #4
    Guest

    Predefinito

    Se $string è già passata ad htmlspecialchars/htmlentities è ovvio che che & convertito, diventerà & e rispassato &, quindi visualizzerai & una volta estratto il record.


Regole di scrittura

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