Ruby Записать в текстовый файл DOS / Windows - PullRequest
0 голосов
/ 04 июля 2018

Возможно, это вопрос новичка, но я пока не смог найти проблему. Мне нужно написать текстовый файл с Ruby. Я могу написать и создать файл для экспорта, но когда я экспортирую файл, и он читается в другом программном обеспечении, он говорит мне, что это файл UNIX, и программа требует, чтобы он был DOS / Windows.

Как я могу сделать это с Ruby? Я использую Rails 4 в проекте.

Пример того, как я пишу.

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

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Это не очень четко задокументировано, но 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).

0 голосов
/ 04 июля 2018

Используйте \r\n вместо:

File.open(filePath, "w+"){ |file| file.write("blablabla\r\n")}
  • Использование \n (0x0a) только в «стиле Unix».
  • Использование \r\n (0x0d 0x0a) - это стиль Windows.

Хотя большинство программ должно быть в состоянии справиться с обоими.

...