Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348

    Mysql - problema accentate

    Ciao a tutti,

    ho un db mysql DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci dove da pagine web utf-8 vengono inseriti correttamente dei dati con caratteri accentati (campo varchar).

    Nel db ci sono le lettere corrette...

    La pagina da cui leggo i dati (sempre charset utf-8) non mi visualizza correttamente le accentate (ad esempio à diventa Ã)... la cosa strana è che nella stessa pagine ci sono dei testi con delle accentate che vengono visualizzati correttamente (questi ultimi se cambio il charset in ISO vengono totalmente "rovinati").

    Cosa cavolo può essere??? NOn so più dove sbattere la testa...

    Grazie
    Edo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    Problema affrontato un altro miliardo di volte... usa la funzione cerca

    Prova con htmlentities(stringa), oppure con utf8decode. Dipende da come encodi le stringhe nel db.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Ciao,

    ho letto i vari post e mi sembra di aver settato tutto come da indicazioni... succede però una cosa stranissima!!!

    Ho un server 2008 dove eseguo pagine ASP e un db mysql 5.0.

    Sulla stessa macchina ci sono due servizi che si interfacciano entrambi con MySql.

    In entrambi i casi i caratteri accentati vengono inseriti in modo "strano" nel db (à ad esempio diventa Ã_) ma poi in fase di estrazione in un caso nell'html viene correttamente interpretato nell'altro no...

    I db e le tabelle hanno la medesima codifica e collation e le pagine html sono entrambe utf-8.

    Non capisco proprio dove può stare l'inghippo!!!


  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    L'errore è quello di inserire i caratteri "strani" nel db. Nel db devono essere codificati correttamente, altrimenti tutto dipende dallo user-agent e dalla codifica settata. Se provi a cambiare la codifica del browser, scommetto che riusciresti a vederli benissimo.
    Dopo aver effettuato la connessione al db, prova ad eseguire questa query
    codice:
    SET CHARACTER SET utf8
    ma il consiglio è quello di salvare nel db i dati come entità html. Ad esempio, la "è" diventa &egrave. Questo è indipendente dal tipo di codifica utilizzato, in quanto il browser lo interpreterà SEMPRE come "è". Prova a crearti una funzioncina di character replace, poi ASP non tanto lo conosco. In PHP, ad esempio, ci sono le funzioni htmlentities() e htmlspecialchars(), oltre che alle varie utf8decode e utf8encode. Sicuramente in ASP ci saranno funzioni equivalenti, prova a cercare un po'.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Ho già fatto una prova di replace dei caratteri codificandoli in HTML ma succede una cosa ancora più strana:

    la à accentata che nel db diventa à quando faccio il replace nella pagina asp che elabora il form, mi riconosce già il carattere convertito e nel db inserisce Ã
    Sia la pagina form che quella del post sono utf-8...

    Se provo a stampare la query di insert vedo invece il carattere à corretto...

    Sto veramente diventando pazzo!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    121
    Hai provato con la query che ti ho detto prima? Va eseguita subito dopo la connessione al db...

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.