Ho settato tutti i campi utf8_unicode_ci (db, tabelle e campi)
dovrò sicuramente fare qualche modifica se mi capiterà il cinese ma non fa nulla
In quel caso sarebbe da usare il big-5
Ciaps
Ho settato tutti i campi utf8_unicode_ci (db, tabelle e campi)
dovrò sicuramente fare qualche modifica se mi capiterà il cinese ma non fa nulla
In quel caso sarebbe da usare il big-5
Ciaps
Conosci te stesso(?)
(..e allora perchè scassi a me?)
Ciao Leandro,
sei un genio!
Finalmente ho risolto questo annoso problema.
Se invece realizzo un sito solo in italiano o in inglese, diciamo lingue con codifica ISO-8859-1 io imposterei i campi, tabelle e DB latin1_general_ci, encoding delle pagine web ISO-8859-1.
Secondo te devo fare SET NAMES = 'latin1' o non serve?
Oppure ho cannato tutto? :-D
Un'altra cosetta, invece da command line ti funziona bene l'output di caratteri arabi/cirillici? A me scazza anche se eseguo SET NAMES utf8 . Ovviamente anche il dump mi da problemi.
Cmq la tua soluzione vorrei pubblicarla sul mio blog per cui se puoi mi mandi i riferimenti con cui vuoi apparire?
Grazie e ciao. Max
http://www.massimo-caselli.com
:: Linux Apache PHP e MySQL Blog ::
up
http://www.massimo-caselli.com
:: Linux Apache PHP e MySQL Blog ::
Scusa, non ho ricevuto la notifca della risposta... mah![]()
Allora se vuoi utilizzare solo caratteri italiani e inglesi va bene la codifica latin1_general_ci (il ci sta per Case Insensitive).
Il SET NAMES iniziale non lo devi fare a meno che il tuo server mysql non sia settato diversamente: lo verifichi facendo "SHOW VARIABLES LIKE 'character%'", viene fuori una lista del tipo
Quella in rosso è il valore che ti interessa (e in sostanza è quello che cambi con il set names o cambiando il my.ini.character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_results utf8
character_set_server latin1
character_set_system utf8
Utilizzare il latin1 ti conviene nel caso di queste due lingue perchè ovviamente occupano solo 1 byte e non 2 come l'utf8. In sostanza risparmi spazio.
Non ho capito invece che intendi per output.. via web?
Cmq mo provo con il dump e vedo cosa viene fuori.
A dopo![]()
Conosci te stesso(?)
(..e allora perchè scassi a me?)
Allora, il dump non dovrebbe essere un problema perchè quando carichi le query da file è sufficiente che specifichi la codifica nella maschera di phpmyadmin.
Cioè se te clicchi la scheda SQL ti da la textarea per l'inserimento tramite stringa oppure l'inserimento della query tramite file. In fondo c'è un'indicazione tipo "Set di caratteri del file".
Ho provato e funziona, nel file si vedono i quadratini (se lo apro con notepad e altri caratteri strani se lo apro con editpad) e all'inserimento vengono "magicamente" trasformati in UTF8 e quindi rivedo e inserisco la mia bella stringa araba.
Ora dovrei capire cosa succede riguardo l'output.
In unapagina web non vedi il risultato corretto ma da phpmyadmin si? Se è così è perchè devi specificare che quella pagina utilizza il charset utf8 (vedi il mio primo post). E magari dal tuo editor html devi salvare il file con codifica utf8.
Altrimenti spiega meglio
A presto
Conosci te stesso(?)
(..e allora perchè scassi a me?)
Ciao Leandro,
prima di tutto grazie ancora.
Il problema riguarda il DUMP da command-line di linux o anche di windows, non da PhpMyAdmin dove funziona a meraviglia.
In shell da command-line ho problemi sia con il dump sia la semplice visualizzazione dei record.
Mentre da web e Phpmyadmin grazie a te ho risolto!
Un salutone, Max
http://www.massimo-caselli.com
:: Linux Apache PHP e MySQL Blog ::
Prego, figurati.
Vabbè ma probabilmente se lavori da command line l'unico problema è che il command non supporta quel tipo di codifiche.
E' un pò come ti avevo detto riguardo al notepad, ti fa vedere i quadratini ma in realtà la codifica la tiene. In fin dei conti l'importante è che i dati siano salvati in maniera corretta in MySql.
Ciao ciao
Conosci te stesso(?)
(..e allora perchè scassi a me?)
Forse sono un po' in ritardo:
nella pagina di visualizzazione aggiungi il <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
tratto da: http://www.massimo-caselli.com/2006/...ratteri-mysql/Per la memorizzazione dei dati nel database prova a seguire le seguenti istruzioni:
Sostanzialmente sui server MySQL di sistemi di hosting italiani (ma credo anche americani) e comunque in generale, l’impostazione del default_character_set è impostata a latin1.
Ma anche qualora sia impostata ad utf8 quando via script PHP ci connettiamo al database MySQL la nostra sessione di default (nonostante la pagina sia encodata utf8) sarà attivata con character set latin1, cosa succede quindi, che i dati e le query che inviamo sfasano e il sistema memorizza erroneamente i dati.
Di fatto il comportamento giusto lo ha PMA, dobbiamo cercare quindi di emularlo.
Per farlo basta di fatto lanciare dopo ogni connessione la seguente query: SET NAMES utf8
Così facendo la connessione tra client e server sarà UTF8.
è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio