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

    Problema con Caratteri Orientali

    Salve, ho un problema che non riesco a risolvere anche spulciando in giro.
    Io vorrei creare un form che mi permetta di salvare su mysql sia caratteri occidentali che orientali.

    la pagina del form è codificata con utf-8

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Mysql l'ho impostato con la collation "utf8_unicode_ci"

    Codice PHP:
     CREATE TABLE `data`.`prova` (
    `
    idINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    testoTEXT NOT NULL
    ENGINE MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci 
    Il punto è questo.. quando nel form si inseriscono caratteri orientali.. questi vengono dapprima letti.. cioè.. se faccio un print della variabile ricevuta con post.. i caratteri orientali si vedono..

    ma quando faccio la query.. nel database non vengono salvati.. ma ci sono lettere strane.. "ãÂÂãŠ"

    Però se la medesima query la faccio direttamente da phpmyadmin.. va a buon fine e i caratteri orientali vengono immessi nel database..

    come posso risolvere?

    P.S. se non sono stato chiaro scusatemi.. ma è l'ora tarda.. XD

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    La pagina del form e quella che fa l'inserimento sono le stesse?

    In ogni caso, sia che siano la stessa sia che siano separate metti in ogni pagina php all'inizio :

    header('Content-type: text/html;charset=utf-8');


    un'altro consiglio, nn ti fidare di quello che ti mostra phpmyadmin.

  3. #3
    Si la pagina del form e quella di inserimento sono la stessa.

    Ho aggiunto la riga che dicevi tu ma ugualmente non va e non capisco nemmeno il discorso di non fidarmi di PhpMyAdmin. Non mi permetto di contraddirti solo che non capisco. Perchè se da lì immetto la query, li vedo i caratteri. Solo se a fare la query è il php mi da problemi.

    Codice PHP:
    INSERT INTO prova (testoVALUES ('そか'); 
    Questa è la query. La stampo a video con print prima di fare mysql_query e i caratteri si vedono.


    Sono ignorante e lo ammetto.. XD
    Ma rimango perplesso..

    Edit: quando ho scritto anzichè 'そか' dovevano esserci caratteri orientali.

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Perchè ad esempio potresti aver fatto l'inserimento in phpmyadmin usando l'encoding iso, e facendotelo mostrare dal phpmyadmin lo vedresti sempre in iso (ottenendo il risultato che cerchi).
    Se invece la query di estrazione (una volta fatto l'inserimento con una pagina il cui encoding era iso) la fai su una pagina il cui encoding è utf8 otterrai un casino


    Quello che ti consiglio di fare è :

    Creare un file php controllando che l'encoding del file di testo sul tuo editor sia utf8.
    Inserisci l'header che ti ho passato prima.
    A questo punto crei una query statica (nel senso che te la scrivi proprio manualmente) inserendo dei caratteri orientali.

    Dopo aver fatto l'inserimento fai subito l'estrazione, e il risultato dovrebbe essere corretto.

    Il punto è che non basta mettere l'header a utf8 per ottenere il corretto encoding di caratteri precedentemente inseriti, per essere sicuro di vedere i caratteri in utf8 devi anche essere sicuro che questi siano stati memorizzati con il giusto encoding.

    Ti dico di non fidarti di phpmyadmin perchè ci sono passato, spesso mi capita che nel sito su cui lavoro non ho problemi di accentate e di caratteri "speciali", perchè inserimenti e estrazioni vengono fatti sempre da pagine il cui encoding è utf8, e phpmyadmin mostra caratteri illeggibili.

    Ciao

  5. #5
    Non posso che dar ragione a Gianiaz.

    Grazie del supporto. E' vero che il prooblema non è nelle pagine create ma solo in PHPMYADMIN.

    Perchè se faccio una query per recuperare i dati, i dati in caratteri orientali si vedono benissimo.
    Vorrà dire che in questo caso non dovrò avvalermi del PHPMYADMIN.

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