Notepad++ 如何在保存时保留 CRLF?

6
我有一个需要进行简单文本更改的PHP文件。我使用FTP从Linux服务器复制到我的Win7机器。我用Notepad++打开它,打开“视图-显示符号-查看所有字符”,我可以看到每行之前和之后都有CRLF和CR。但是,如果我保存该文件并在Notepad++中重新打开该文件,则所有的CRLF都被替换为CR。
如何在保存时将这些CRLF保留为它们原来的形式?
我使用的是Notepad++ 5.9.6.2。
编码设置为ANSI。该文件是否实际上以另一种格式编码,这会导致它剥离信息?

1
PHP文件的编码是什么? - Pankaj Jaju
1个回答

5

Notepad++通常会在打开文件时检测EOL格式,并保持该格式即使在保存文件时也是如此。当您首次打开这些文件之一时,请转到编辑>EOL转换并查看哪个选项被禁用。那将是文件中使用的当前行结束格式,如果您想从列表中使用不同的格式,则可以在那里选择它。如果您的文件具有混合行尾,那么NPP可能会在保存时将行尾规范化为它认为适合该文件的格式。

顺便说一下,CR是旧的Mac格式,这意味着您要么有某些东西干扰了您的文件,要么您在某种情况下意外地设置了格式,要么您误用了术语。 CR = 回车=\r,LF = 换行=\n; Windows使用CRLF (\r\n),* nix和OSX仅使用LF (\n),正如先前提到的,MacOS过去只使用CR (\r)。


此外,FTP 服务器和客户端可以配置实时更改换行符。 - Álvaro González
@ÁlvaroG.Vicario 虽然这是Git和其他源代码库服务器/客户端中的一个有用功能,但我认为在从FTP服务器下载文件后不会发生这种情况,因为Notepad ++是Windows程序,因此我假设打开和保存是在Win7机器上完成的(尽管某人可以通过WINE或类似工具在Linux上使用它,但已经有很多功能丰富的*nix文本编辑器了,因此没有理由在这样的机器上使用NPP)。 - JAB
@user3223999 - 快速测试请前往“传输/传输类型”,并选择“二进制”。在首选项中有一个更通用的设置,可以设置默认值。 - Álvaro González
编写代码的程序员今天不在。因此,我无法说为什么编码了CRLF和CR。这是PHP ajax代码。如果可以的话,我会展示部分代码的截屏。但是当我用Notepad++编辑它时,它认为它是EOL Mac(正如我怀疑的那样),但我知道这个程序员没有使用Mac。每行代码的结尾都有; CR,然后下一行只有CRLF,接下来一行只有CR。 - DVDmmike
Filezilla被设置为“自动”传输。我进行了二进制传输,在notepad++中编辑了文本,再次进行了二进制传输,并测试了代码,看起来一切正常。当我之前执行此过程时,代码已经损坏。因此,从Filezilla进行的文件传输似乎导致了问题。 - DVDmmike
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接