【问题标题】:Ruby Write txt file DOS/WindowsRuby 写入 txt 文件 DOS/Windows
【发布时间】:2018-07-05 17:30:32
【问题描述】:

也许这是一个初学者的问题,但我还没有找到问题。 我需要用 Ruby 编写一个文本文件。 我可以编写和创建要导出的文件,但是当我导出文件并在其他软件中读取时,它告诉我这是一个 UNIX 文件,程序要求它是 DOS / Windows。

我怎样才能用 Ruby 做到这一点? 我在项目中使用 Rails 4。

我写作的例子。

File.open(filePath, "w+"){ |file| file.write("blablabla\n")}

【问题讨论】:

  • 你的意思是like this
  • @tadman,谢谢伙计,我添加了 '\r\n',现在该文件是该软件的 DOS 格式。我以前怎么想的,这是一个初学者的问题。我真的很感谢你的帮助!如果你愿意,可以用这个解决方案来回答这个问题。

标签: ruby ruby-on-rails-4 text-files


【解决方案1】:

改用\r\n

File.open(filePath, "w+"){ |file| file.write("blablabla\r\n")}
  • 仅使用\n (0x0a) 是“unix 风格”。
  • 使用\r\n (0x0d 0x0a) 是“windows 风格”。

虽然大多数软件应该能够同时处理这两种情况。

【讨论】:

  • 很多源自 DOS 的 Windows 软件都不知道 LF 编码是一回事。
【解决方案2】:

没有很清楚的记录,但File.open 也接受这些String#encode 选项:

File.open('a.txt', 'w+', crlf_newline: true){ |file| file.write("blablabla\n")}

File.open('a.txt', 'w+', newline: :crlf){ |file| file.write("blablabla\n")}

要么强制 Ruby 写入 CRLF 而不是 LF(CR 是 \r,LF 是 \n)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 2013-03-03
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多