Ruby字符串编码问题

Joh*_*aux 6 ruby

我查看了其他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)

rog*_*ack 0

也许 txt.chomp.force_encoding('US-ASCII') + %(, "", "", "#{salesperson.force_encoding('something')}")

  • 我可能会尝试找到一个“小”可重现的测试用例并对其进行 ping 红宝石核心。 (2认同)