Ho esaminato gli altri post relativi a ruby / encoding ma non sono stato in grado di capire perché il seguente non funziona. Probabilmente solo perché sono denso, ma ecco la situazione.Problema di codifica della stringa di ruby
Utilizzo di Ruby 1.9 su Windows. Ho un set di file CSV che richiedono alcuni dati aggiunti alla fine di ogni riga. Ogni volta che eseguo il mio script, i caratteri aggiunti sono senza senso. Il testo di input sembra essere la codifica IBM437, mentre la mia stringa che sto aggiungendo inizia come US-ASCII. Nulla di ciò che ho provato rispetto alla forzatura della codifica sulle stringhe di input o alla stringa di append sembra cambiare l'output risultante. Sono perplesso. La versione corrente della codifica è semplicemente l'ultima che ho provato.
def append_salesperson(txt, salesperson)
if txt.length > 2
return txt.chomp.force_encoding('US-ASCII') + %(, "", "", "#{salesperson}")
end
end
salespeople = Hash[
"fname", "Record Manager"]
outfile = File.open("ActData.csv", "w:US-ASCII")
salespeople.each do | filename, recordManager |
infile = File.open("#{filename}.txt")
infile.each do |line|
outfile.puts append_salesperson(line, recordManager)
end
infile.close
end
outfile.close
Stai usando il commento magico di codifica nel tuo script? – kch