Ruby在macOS中抛出数据异常

时间:2017-01-09 16:20:22

标签: ruby macos

目标:

编写一个Ruby程序来替换文本文件中的单行。

问题:

当我在macOS 10.12中的终端中运行程序时,Ruby会在我的文本文件中引发异常。具体来说,消息是: myprog.rb:3:在'block in'中:UTF-8中无效的字节序列(ArgumentError)。该程序适用于大约30行数据,直到达到数据中的行包含版权符号©编码为单字节,值为0xA9。

数据:

在终端中,文件命令显示“ISO-8859文本,带有CRLF行终止符”详细信息:数据文件是 Inno Setup <的脚本/ strong>,是用 Inno Setup Compiler 编写的,该程序很满意。我的Ruby程序旨在制作原件的副本以进行调试。

该计划:

fname = '/Users/Vacuumhead/Documents/Temp/myscript.iss'

File.foreach(fname) { |line|
    if line =~ /^OutputDir/
        puts 'OutputDir=Y:\\Users\\Vacuumhead\\Temp'
    else
        puts line
    end         
}

我试过的:

我将foreach(fname)更改为foreach(fname, 'r:iso-8559-1')。然后我在第一行数据上得到了相同的运行时错误。从本质上讲,事情变得更糟。

我也尝试在 Windows 7 中运行我的Ruby程序的第一个版本,并且工作正常,所以最终我完成了我的工作已经着手做了,此时问题实际上只是学术问题。但是我特别想知道为什么在Windows中运行的Ruby程序不能在 macOS 中运行,以及如何为macOS修复它。

0 个答案:

没有答案