如何在Ruby on Windows上只写一个0x0A字符到STDOUT?

如何在Windows上的Ruby上将一个0x0A字符写入STDOUT。 只有一个,没有0x0D。

@EDIT:谢谢大家! 我知道二进制/文本模式的概念,但不知道如何在Ruby解释器中处理这个问题。 解决scheme是使用STDOUT.binmode

如何使用独立于平台的代码将STDOUT切换回文本模式存在一个悬而未决的问题。

这是由于“虚拟换行”。 在(Ruby)IO层,此功能负责将“\ n”(0x0A,LF)映射到换行符的操作系统定义中 。 Windows将“\ n”映射到CR + LF(而“\ n”在类Unix系统中映射为LF不变)。

使用ios.binmode将流设置为禁用“虚拟换行”模式的二进制模式。 这对处理二进制流如图像也是非常重要的;-)

快乐的编码。