我查看了其他有关Ruby /编码的帖子,但无法弄清楚以下内容为什么不起作用。可能只是因为我太笨了,但以下是情况。
在Windows上使用Ruby 1.9。 我有一组CSV文件,需要在每行末尾附加一些数据。每当我运行我的脚本时,追加的字符都是乱码。输入文本似乎是IBM437编码,而我要附加的字符串起始为US-ASCII。就输入字符串或附加字符串强制编码而言,我尝试过的任何方法都似乎无法改变结果输出。我被难住了。当前的编码版本仅是我尝试过的最后一个版本。
在Windows上使用Ruby 1.9。 我有一组CSV文件,需要在每行末尾附加一些数据。每当我运行我的脚本时,追加的字符都是乱码。输入文本似乎是IBM437编码,而我要附加的字符串起始为US-ASCII。就输入字符串或附加字符串强制编码而言,我尝试过的任何方法都似乎无法改变结果输出。我被难住了。当前的编码版本仅是我尝试过的最后一个版本。
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