Sto generando file CSV che devono essere aperti e revisionati in Excel una volta che sono stati generati. Sembra che Excel richieda una codifica diversa da UTF-8.Ruby: Come generare file CSV con codifica Excel-friendly
Ecco la mia configurazione e generazione di codice:
csv_config = {col_sep: ";",
row_sep: "\n",
encoding: Encoding::UTF_8
}
csv_string = CSV.generate(csv_config) do |csv|
csv << ["Text a", "Text b", "Text æ", "Text ø", "Text å"]
end
Quando si apre questo in Excel, i caratteri speciali non sono visualizzati correttamente:
Text a Text b Text æ Text ø Text å
Qualsiasi idea di come garantire la codifica appropriata?
Prova a mettere # codifica: UTF-8' come prima riga del tuo file Ruby (seconda se hai una linea hash-bang, '#!/Usr/bin/env ruby'). Credo che tu stia scrivendo * in UTF-8, ma il file sorgente Ruby è considerato codificato come US_ASCII. (Con Ruby 2.0+, la codifica sorgente è impostata su UTF-8) – Amadan
Sto usando 'ruby 2.0.0p247 (2013-06-27 revisione 41674) [x86_64-darwin12.4.0]' quindi suppongo che ciò significhi che la mia installazione è già impostazione predefinita su UTF-8. – ChristofferJoergensen
Nessuna esperienza con Ruby. Ma Excel può aprire file CSV delimitati da punti e virgola che sono codificati in UTF-8. Ma il file deve avere una BOM all'inizio. E se il punto e virgola può essere utilizzato come delimitatore dipende dalle impostazioni internazionali. Quindi l'approccio migliore è usare il CSV delimitato da tabulazioni e quelli codificati da UTF-16LE. Questo dovrebbe essere la maggior parte delle impostazioni internazionali indipendenti. –