Travaso dati e caratteri speciali

Ciao a tutti,

Situazione:
archivio su file excel da importare in mysql.

Procedimento:
esporto in formato txt e reimporto tramite un progemmino che legge il file e scrive il database.

Problema:
Titoli ed autori russi (e non solo) con caratteri speciali (non cirillici ma di set differenti dal nostro).
Se salvo come “formato txt” non li esporta ma li sostituisce con ? se salvo come formato “unicode” li trasferisce ma poi il programma che ricarica “impazzisce” e non riconosce i record.

Idee ? Possibili soluzioni ?

Enrico

Puoi utilizzare un terminale e i client mysql da terminale per amministrare questo database?

[quote=MarioS]
Puoi utilizzare un terminale e i client mysql da terminale per amministrare questo database?[/quote]

Posso gestire il database dalla console del server, da un client ssh, da phpMyAdmin. Per client da terminale intendi un terminale sul server e poi entrare in maniera testuale ?

mysqld > per intenderci ?

Enrico

Si :slight_smile:
Prova ad usare mysqldump con l’opzione --set-charset:
http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_set-charset

Dovresti avere i dati salvati con la codifica impostata nel tuo database.

Puoi li importi. Porta sempre attenzione alla codifica dei caratteri del file e del database di importazione. Se è differente devi indicare la codifica che usi.

[quote=MarioS]
Si :slight_smile:
Prova ad usare mysqldump con l’opzione --set-charset:
http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_set-charset

Dovresti avere i dati salvati con la codifica impostata nel tuo database.

Puoi li importi. Porta sempre attenzione alla codifica dei caratteri del file e del database di importazione. Se è differente devi indicare la codifica che usi.[/quote]

Si ma il problema è che io parto da excel !!!
E’ da lì che devo esportare con i caratteri speciali e poi re-importare in maysql.

L’unica opzione di salvataggio che, ad un esame del file, mantiene i giusti caratteri è “Testo UNICODE”, che però non è comprensibile dal programma php che “ricarica” i dati in mysql… o almeno io non riesco a farlo andare.

Enrico

sospetto che quel programma php non conosca le lingue :frowning:
insegnagli e vivi felice.

http://www.google.it/search?q=mysql+unicode&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&safe=images

Già dalla prima schermata trovi informazioni sufficienti,
il primo ed il penultimo link sono molto interessanti.

ciao

R.

Sto studiando ma è un bel casino.

Primo perché attualmente la procedura gira su php 3 e non è ancora prevista la migrazione.

Secondo perché il database contiene svariati alfabeti: trattasi della catalogazione della biblioteca di uno studioso che aveva libri in francese, tedesco e russo.

Credo che il primo passo sia passare tutto a php5 e relativo mysql ultima versione.

Attraverso quest’ultima versione di mysql ho infatti preso le informazioni da excel senza problemi e le ho messe “in pancia” ora però si tratta di farle vedere all’utilizzatore nel giusto formato.

Enrico

Invece di passare per il programma in php è possibile impostare una query direttamente in mysql per importare i dati leggendo il file in unicode ? .

Certo che si, basta usare un altro client per MySql, o lo stesso comando mysql da terminale o una GUI come MySql Worckbench.

Un aggiornamento a php 5 dalla versione 3 è sicuramente una scelta obbligata però comunque devi seguire il suggerimento di romulus.

Un passo alla volta sta andando tutto a posto :ok:

Manca ancora un piccolo passo.

Situazione attuale:
All’interno del database mysql i caratteri si vedono bene, sia quelli russi (non cirillici) che quelli francesi.

Attraverso phpMyAdmin è tutto visibile.

Dal che deduco due cose (correggetemi se sbaglio):
a) Mysql è settato correttamente
b) Apache è settato correttamente

Rimane l’errore di visualizzazione attraverso un semplice programma php:

*Biblioteka Voltera : katalog knig / [Gosudarstvennaja publi?naja biblioteka im Saltykova-Š?edrina ; a cura di Mihail Pavlovi? Alekseev]. - Moskva ; 

Al posto di:

*Biblioteka Voltera : katalog knig / [Gosudarstvennaja publi?naja biblioteka im Saltykova-Š?edrina ; a cura di Mihail Pavlovi? Alekseev]. - Moskva 

!!! Mi accorgo ora che anche questo forum visualizza male le scritte Ergo trovate le due citazioni uguali ma non lo dovrebbero essere !!!

Direi che quindi rimane da mettere a posto il settaggio del php … commenti ? Suggerimenti ?

Enrico

Ora il problema è la codifica con il quale il browser interpreta l’output! Se stai utilizzando un output html.
Che intestazione dai nella pagina html?

[quote=MarioS]
Ora il problema è la codifica con il quale il browser interpreta l’output! Se stai utilizzando un output html.
Che intestazione dai nella pagina html?[/quote]

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Ma anche con

<meta http-equiv="Content-Type" content="text/html; charset=UTF-1" />

Non cambia.

Usa la stessa codifica con la quale sono salvati i dati nel database…

[quote=MarioS]
Usa la stessa codifica con la quale sono salvati i dati nel database…[/quote]

Allora :

UTF8-general-ci scritto anche con gli underscore

ma non funziona lo stesso :wall:

Prova con UTF-8 invece che con UTF-1.