【问题标题】:What is a \r" and why would one use it with a \n?什么是 \r" 以及为什么要将它与 \n 一起使用?
【发布时间】:2012-04-23 14:15:37
【问题描述】:

这两个字符串有什么区别?

"first line \n second line" , "first line \r\n second line"

【问题讨论】:

  • 我看到了...但我不知道,\n前面的\r是什么
  • StackOverflow 可能是一个残忍的情妇。通常在类 Unix 环境中,'\n' 用于换行。但在 Windows 中,您通常需要 '\r\n'。从技术上讲,Windows 在这里更准确,因为 \n 应该只前进一行,但 \r 也会将光标返回到行的前面。 Unix 通常只是忽略了这些细节。
  • 如果您将您的问题(使用编辑链接)澄清为“什么是 \r”以及为什么要将它与 \n 一起使用?”那么您将有一个比人们更合理的问题不会投反对票。正如您现在看到的那样,您似乎看不到一个字符串中有一个 \r。
  • @jfriend00 当然我看到第二个中的\r,但我不明白,为什么它很重要
  • Danny - 我想指出的是,如果您编辑问题以添加问题的真正意义(您想知道 \r 的作用以及使用它的原因),那么人们将停止投票或投票以结束您的问题。查看对您问题的第一条评论。他们在嘲笑你没有说出真正的问题是什么。

标签: javascript string


【解决方案1】:

\r - 回车
\n - 换行

\r\n 通常优先于 \n 使用,因为它在 unix 和 Windows 上都能正常显示。

回车只是将光标返回到同一行的开头(不前进到下一行),而换行则换行。

注意: (将鼠标悬停在下面的灰色框上即可查看)

如果您有打字机,请尝试使用它。这是一个如此宏伟的工程,如今没有多少人能够体验到。

【讨论】:

  • 正确。回车 (\r) 是对打字机的马车以 ding 跳回开头的方式的引用。编写者接下来将插入一个新行 (\n),以免覆盖前一行。 Windows 开发人员喜欢这个想法,并决定将\r\n 视为创建新行的方式。 Linux 认为这是多余的并去掉了\r 字符。
  • @Honoki 不完全是,计算机也经历了文本终端阶段,光标充当马车,CR 仅使其返回到行首,而 LF 仅使其下降一条线。那时两者实际上都是必要的。然后 Unix 通过将 LF 的含义转换为抽象的“新行”来摆脱它,而 DOS 和 Windows 则保持愚蠢并需要两者。 (即使在图形编辑器中,独立的 CR 或 LF 没有任何意义并且什么也不做)我不了解 Windows 10,但在 Windows 7 记事本中 still 需要两者并且根本不需要换行符即可读取 Unix 文件.
【解决方案2】:

不同之处在于EOL系统不同(Unix优先,Win/DOS次之)

http://en.wikipedia.org/wiki/Newline

【讨论】:

    【解决方案3】:

    它是不同operating systems 的换行表示。在 Windows 中,新行是 \r\n,而 Linux 是 \n。

    【讨论】:

    • 斜线相反,`\`
    • 所以这两个字符串是一样的吗?
    • 不,因为 \r 是另一个字符。在 Unix 环境中通常不需要它。这两个字符串的内容相同,但字符不同。
    • @MattGreer 不,他们有不同的内容,因为他们有不同的字符,但语义通常是相同的。
    • 实际上,\r 会将光标移动到该特定句子的开头,\n 将内容写入新行。因此,在 \n 之前附加 \r 将确保在新行中写入该内容,无论上面写的是什么。
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 2010-12-09
    • 2020-10-25
    • 2015-09-08
    • 2022-01-22
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多