Как записать только один символ 0x0A в STDOUT в Ruby на Windows? - PullRequest
3 голосов
/ 23 сентября 2011

Как написать только один символ 0x0A в STDOUT в Ruby на Windows. Только один, без 0x0D.

@ РЕДАКТИРОВАТЬ: Спасибо всем! Я знал о концепции двоичного / текстового режима, но понятия не имел, как с этим справиться в интерпретаторе Ruby. Решением является использование STDOUT.binmode.

Остается открытым вопрос, как переключить STDOUT обратно в текстовый режим, используя независимый от платформы код.

1 Ответ

5 голосов
/ 23 сентября 2011

Это связано с «виртуальным переводом строки».На уровне (Ruby) IO эта функция отвечает за отображение "\ n" (0x0A, LF) в / 100 * определение операционных систем новой строки .Windows отображает «\ n» в CR + LF (тогда как «\ n» в Unix-подобных системах отображается без изменений в LF).

Используйте ios.binmode , чтобы поместить поток в двоичныйрежим, который отключает режим «виртуальной новой строки».Это также очень важно сделать для работы с двоичными потоками, такими как изображения; -)

Счастливое кодирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...