[Linuxtrent] Re: mysql e charsets

  • From: Lele Gaifax <lele@xxxxxxxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Thu, 27 Oct 2005 22:09:33 +0200

>>>>> "Danilo" == Danilo Spada <danilo.spada@xxxxxxxx> writes:

    Danilo> - Entrambi i database (origine e destinazione) sono MySQL
    Danilo> con charset impostato a 'it-utf-8'

Uhm, puà anche essere una sfizioseria mysql, ma sicuro ci voglia
proprio quel "it-" davanti? Gli encoding non hanno nazionalitÃ, anche se
di solito una nazionalità usa un certo encoding :)

    Danilo> - Da phpmyadmin esporto le 67 tabelle di origine; (per
    Danilo> ciascun record à definita una collazione
    Danilo> 'latin1_swedish_ci'...  presumo nasca qui il
    Danilo> problema... mah...)

Reuhm, se comprendo bene "collazione", dovrebbe essere per le regole
di ordinamento, che giustamente indicano latin1, e qui posso
comprendere che una certa nazionalità ordini diversamente i singoli
caratteri che compone il charset.

    Danilo> - da console (il dump.sql à di 7MB e bruscoli) carico le
    Danilo> tabelle nel nuovo database: mysql -u root_ati -p phpbb_ati
    Danilo> < 031740mcati_ORIG.sql

Che LANG? Con quale charset lavori in console?

Il dubbio à questo: facendo in questo modo, qualunque sia l'effettiva
codifica nel file SQL, viene interpretata secondo quanto dicono le
varie LC_* nell'ambiente. Quindi, se non à UTF-8, questo potrebbe
essere già un motivo del problema. Forse mysql ha un'opzione per
dirgli "occhio che ti arriva uno stream codificato cosÃcosÃ", perchÃ
altrimenti solitamente le applicazioni consultano le variabili
d'ambiente per stabilire in che codifica devono colloquiare con
l'utente, che chiaramente puà non corrispondere con quella affibbiata
al database.

    Danilo> - il database sembra ricostruito correttamente (collazione
    Danilo> compresa, nel senso che mi ritrovo lo swedish) ma tutti i
    Danilo> caratteri accentati a questo punto mi risultano
    Danilo> "alterati".

Alterati in che senso? E ancora, in che contesto hai fatto questa
prova? In console?

    Danilo> Scusate l'ignoranza, ma non riesco proprio a risolvere il
    Danilo> problema.

Tranquillo, Ã un dramma quotidiano, e non ci sono, a quanto ne so,
ricette magiche che possano eliminare completamente questo problema,
perlomeno finchà vige una democrazia che tolleri questa babele :)

Oltre al citato iconv, io uso di preferenza recode, che ha una
simpatica quanto inusuale sintassi:

  recode latin1..utf-8 file.txt

Spero sia d'aiuto,
ciao, lele.
-- 
nickname: Lele Gaifax   | Quando vivrà di quello che ho pensato ieri
real: Emanuele Gaifas   | comincerà ad aver paura di chi mi copia.
email: lele@xxxxxxxxxx  |               -- Fortunato Depero, 1929.
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: