提醒 - \r \n或\n\r?

Dan*_*dor 375 .net windows ascii

我只是记不住那些.那么,正确终止旧式ASCII行的正确方法是什么?

Dav*_*unt 1036

我会用" r etur n " 这个词来记住,r来自n之前.

  • 并且要记住要使用的单词是*return*,记住\ r是*回车*.不要记得"返回"是Mac键盘上的键的名称,否则您可能稍后看一下PC键盘,看到名为"Enter"的键,并且输入错误的字母顺序! (112认同)
  • @DanielMošmondor或者,您可能只记得订单是impoRtaNt.或者,当你问到某人时,有人给你一个RemiNder,你后来忘记了.或者你_不能使用你的姓氏作为提醒,因为r和n的顺序是相反的:) (11认同)
  • @ Mr.Anubis如果你有_certain_点阵打印机,应该没有区别,因为命令的顺序不应该很重要.但是,在某些打印机上,您将获得额外的空行,或根本没有行前进.而上述说法适用于文本编辑器 - 它们会混淆,TextStream类会生病,等等.订单*IS*很重要.:) (7认同)
  • @RobKennedy哈哈,你知道我来到这里看过回归,并认为"很棒!".然后我读了你的评论.现在每次我都记不起哪个键我不应该看 - 我看着我的"回车"键,我觉得"这里的东西非常错误"......哈哈思索着它! (5认同)
  • @David但我想知道`\n\r`和`\ r \n`的效果是一样的,是不是它们的效果相同?你能分辨出来吗? (3认同)

Bru*_*oLM 52

如果你使用C#,你应该使用Environment.NewLine,相应的MSDN是:

对于非Unix平台包含"\ r \n"的字符串,或者对于Unix平台包含"\n"的字符串.

  • 实际上这取决于你在做什么.如果您只是将纯文本输出到控制台或文件供本地使用,那么`Environment.NewLine`就可以了.但是,如果您以明确定义的格式编写内容,则格式也可以定义换行符.例如,HTTP协议声明你必须**使用`\ r \n`作为标题等的行终止符,而不管平台如何. (46认同)
  • 是的,这是非常糟糕的建议. (3认同)

Sun*_*Sun 35

新行取决于您的操作系统:

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
Run Code Online (Sandbox Code Playgroud)

更多细节:https://ccrma.stanford.edu/~craig/utility/flip/

如有疑问,请使用任何免费软件十六进制查看器/编辑器查看文件如何编码其新行.

对我来说,我使用以下指南来帮助我记住:0D0A =\r \n = CR,LF = ca rr iage r eturn,li n e feed

  • 奇怪的是,我是这些知道"0D0A"的人之一,但仍然混淆了`\ r`和`\n`. (7认同)

Otá*_*cio 20

顺序是CR(回车) - LF(换行).还记得点阵打印机吗?究竟.所以 - 正确的顺序是\ r \n

  • LF + CR将在打印机上执行相同的CR + LF. (12认同)
  • 我不同意,@大卫.仅仅考虑点阵式打印机(或打字机,因为*它们是*那些有回程的车型)是不够的.只有关于它们如何工作的基本信息,没有理由认为我们是否在返回到生产线之前或之后推进论文是重要的.\ r \n和\n\r都将纸张放在相同的位置. (10认同)
  • 在回车后放置换行的一个原因是减少了所需的总时间 - 当磁头返回到纸张的左边缘时,压板可以索引一条线.较长的操作首先开始,因此整个操作在执行较长操作所花费的时间内完成.我们做了很多事情,因为当时的原因; 想象在110波特等待几百行... (5认同)

Est*_*aya 8

在任何.NET语言中,Environment.NewLine都是可取的.


Bra*_*rad 5

\r\n对于 Windows 来说就可以了。

  • 实际上,@DavidCaunt,我刚刚尝试过 \n 并且它不适用于 Win8 上的记事本。 (2认同)

Mar*_*ork 5

手动执行此操作时要小心.
事实上,我建议要这样做.

实际上,我们正在谈论特定于平台的线路终止序列LTS.

如果您以文本模式打开文件(即非二进制),则流将"\n"转换为您平台的正确LTS.然后在读取文件时将LTS转换回"\n".

因此,如果您将"\ r \n"打印到Windows文件,您将在物理文件中获得序列"\ r \n \n \n"(使用十六进制编辑器查看).

当然,在平台之间传输文件时,这真的很痛苦.

现在,如果您正在写入网络流,那么我会手动执行此操作(因为大多数网络协议都会专门调用它).但我会确保流不做任何解释(因此二进制模式是合适的).