[ruby-it] leggere un file iso8859-15 e convertirlo in utf8

mox 601 mox601 a gmail.com
Lun 23 Nov 2009 19:52:14 CET


Salve a tutti,
sto cercando di fare un parsing di un file di thunderbird che contiene i
testi di alcune email.

Il problema è che non riesco a visualizzare correttamente le lettere
accentate, vista la differenza di codifica del file e dei caratteri
riconosciuti da ruby (o da mac osx, non ho ancora capito... )

Ho capito (usando file nomefile) che il file che sto cercando di aprire
è di tipo ISO-8859 mail text,
ma poi guardando nel pannello di thunderbird vedo che la codifica per
tutte le mail è iso-8859-15 (dovrebbe essere equivalente a latin-9), e
la visualizzazione classica nella finestra di thunderbird è corretta, ma
quando si va a vedere il sorgente dell'email, si vedono gli stessi
caratteri che si trovano nel file salvato sull'hard disk.

Il codice ruby che uso è il seguente: apro il file in questione nella
classe Mailbox e provo a convertire ogni stringa del file usando Iconv
(ho scoperto che usa proprio l'iconv installato nel sistema) e converto
da LATIN-9 a UTF8.

 def initialize(path_to_filename)    File.open(path_to_filename) do
|file|
     puts file.inspect
     @file_lines = file.readlines
         converter_to_utf = Iconv.new("UTF8", "LATIN-9")

     @file_lines_converted = []
         @file_lines.each do |line|              puts line
       # conversion
       converted_line = converter_to_utf.iconv(line)
       puts converted_line
       @file_lines_converted << converted_line
     end
       end


Il problema è che non riconosce le lettere accentate, e le sostituisce
con =E0, =E9, etc etc...

Sono un po'confuso... Grazie in anticipo dell'aiuto.


ps: vi incollo di seguito il testo così come lo si legge sul file e
anche quando lo apro con textmate.





More information about the Ml mailing list