Ruby 写入 txt 文件 DOS/Windows
Ruby Write txt file DOS/Windows
也许这是一个新手问题,但我还没有找到问题所在。
我需要用 Ruby 写一个文本文件。
我可以编写和创建要导出的文件,但是当我导出文件并在其他软件中读取时,它告诉我这是一个 UNIX 文件,程序要求它是 DOS / Windows.
如何使用 Ruby 执行此操作?
我在项目中使用Rails4.
我写作的例子。
File.open(filePath, "w+"){ |file| file.write("blablabla\n")}
改用\r\n
:
File.open(filePath, "w+"){ |file| file.write("blablabla\r\n")}
- 仅使用
\n (0x0a)
是 'unix style'。
- 使用
\r\n (0x0d 0x0a)
是 'windows style'。
虽然大多数软件应该都可以处理。
它没有很清楚地记录,但 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
)。
也许这是一个新手问题,但我还没有找到问题所在。 我需要用 Ruby 写一个文本文件。 我可以编写和创建要导出的文件,但是当我导出文件并在其他软件中读取时,它告诉我这是一个 UNIX 文件,程序要求它是 DOS / Windows.
如何使用 Ruby 执行此操作? 我在项目中使用Rails4.
我写作的例子。
File.open(filePath, "w+"){ |file| file.write("blablabla\n")}
改用\r\n
:
File.open(filePath, "w+"){ |file| file.write("blablabla\r\n")}
- 仅使用
\n (0x0a)
是 'unix style'。 - 使用
\r\n (0x0d 0x0a)
是 'windows style'。
虽然大多数软件应该都可以处理。
它没有很清楚地记录,但 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
)。