我查看了其他ruby /编码相关的帖子,但无法弄清楚为什么以下不起作用.可能只是因为我很密集,但情况就是这样.
在Windows上使用Ruby 1.9.我有一组CSV文件,需要在每行末尾附加一些数据.每当我运行我的脚本时,附加的字符都是乱码.输入文本似乎是IBM437编码,而我附加的字符串以US-ASCII开头.我没有尝试过对输入字符串或append字符串强制编码似乎改变了结果输出.我很难过.目前的编码版本只是我尝试过的最后一个版本.
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
Run Code Online (Sandbox Code Playgroud) ruby ×1