[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