【问题标题】:Can't I use the \n\r sequence instead of \r\n?我不能使用 \n\r 序列而不是 \r\n 吗?
【发布时间】:2013-12-04 15:52:31
【问题描述】:

如果我发送这个:

test\r\nline

是这样解释的:

test *go to column 1 and then down one line*
line

如果我改为发送这个:

test\n\rline

我觉得应该这样解读:

test *go down a line and then to column 1*
line

如果我编写一个脚本来编写两者的输出,我看不出有什么区别,但是网络标准等呢(例如:它们在 HTTP 套接字中是否相同)?

如果都一样,为什么大家都用'\r\n'?

【问题讨论】:

    标签: escaping newline carriage-return


    【解决方案1】:

    ASCII 标准可以追溯到 1960 年代,它被设计为驱动当时电传打印机的标准化方式。 “控制字符”用于控制打印机,而不是打印文本。 回车 (CR) 会将打印头移动到行首,而 换行 (LF) 会将打印纸移动到下一行。

    当然,LFCR 应该产生与 CRLF 相同的结果。我记得,CRLF 成为标准是因为将打印头移动到生产线的开头可能是一项耗时的操作,而当时的打印机是非常简单的设备。发送 CR 后,打印机在完成移动打印头之前实际上无法打印任何内容,并且打印机可能没有足够的容量来缓冲数据。在 LF 之前发送 CR 将使打印机有更多时间在下一行的文本到达之前移动打印头。

    【讨论】:

    • 但是如果你在 CR 之前发送了 LF,我不明白为什么它应该有更少的时间。最后不应该花同样的时间吗?
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 2010-12-20
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多