erlug
[Top] [All Lists]

[Erlug] conversione charset db mysql da utf8 a latin1

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: [Erlug] conversione charset db mysql da utf8 a latin1
From: Matteo Sgalaberni <sgala@xxxxxxxxx>
Date: Tue, 15 Apr 2008 18:50:18 +0200
Allora, 

Mysql 5.0.32 

i db sono caricati in utf8.

devo convertire tutta la baracca in latin1.

premettendo che ho già provato i suoi metodi di modifica automagica del
charset in fase di dump e restore ma sono ovviamente buggati e non
servono a niente.

ho pensato a:
mysqldump --add-drop-table database >/tmp/panza.utf8
sed 's/utf8/latin1/' /tmp/panza.utf8  >/tmp/panza.latin1
sed 's/utf8_unicode_ci/latin1/' /tmp/panza.latin1 >/tmp/panza.latin1.ok
recode --force utf8..latin1 /tmp/panza.latin1.ok

e poi ritirerei su tutto con mysql database < /tmp/panza.latin1.ok

ma...

se non metto --force caccia un errore. se mettto --force al primo giro
converte un pò ma non tutte le eccentate e char strani  (verifico
aprendo banalmente il file lavorato con vim e terminale in latin1).

se rieseguo recode --force etc... ne converte un altro pò ma ovviamente
non tutti.

Se lo rieseguo la terza volta _ovviamente_ comincia a segare le
accentate nel file randomicamente.

dai sù.. mi sto perdendo in un bicchiere d'acqua, vero?...:)

M.

p.s.: concludo che la roba che non è rappresentabile in latin1 e che sta
sui db per volere o per errore può essere anche convertita in punti
interrogativi o in caratteri random, non è importante in quanto non
dovrebbero esserci...

<Prev in Thread] Current Thread [Next in Thread>