Notepad++ 打开空文件(在 Windows 资源管理器中创建的 0 字节文本文件)时新行仅插入 CR

Notepad++ 打开空文件(在 Windows 资源管理器中创建的 0 字节文本文件)时新行仅插入 CR

背景:我遇到了一个非常奇怪的问题,php 页面的一部分在上传到服务器后停止解析。本地运行良好。它被切断的部分是在注释的代码行之后。删除它解析的注释,直到下一个注释。

原来问题出在行尾。它们只有 CR,没有 LF,而 *nix 服务器无法将 CR 单独识别为新行,因此它将注释解释为扩展到文件的其余部分。

我尝试在 Notepad++ 中创建一个新文件(打开“显示所有字符”后)并按回车键。它显示 CRLF。

接下来,我在 Windows 资源管理器(Win7 x64)中创建了一个新文本文件,然后在 Notepad++ 中打开它。我按下回车键,结果只插入了 CR,没有插入 LF。

现在真正的问题是为什么?据我所知,Windows 应该基于 CRLF,而不仅仅是 CR。还有没有办法让 Notepad++ 始终使用 CRLF,或者至少假设 0 字节文件使用 CRLF?

答案1

我不知道为什么您的文件一部分是 Windows 格式,一部分是 Mac 格式,但这应该很简单,只需选择“编辑”->“EOL 转换”->“Windows 格式”,整个文件就应该转换为 CRLF。Notepad++ 使用打开的文件中使用的格式。据我所知,没有办法强制执行。一种选择可能是显示行尾字符(视图->显示符号->显示行尾),这样您在打开文件时就知道要处理什么。

答案2

打开零长度文件时,它会使用最近打开的文件的行尾。这就是我得到不同结果的原因。

答案3

您可以在“新建文档/默认目录”首选项选项卡中设置新文件的默认 EOL 格式。我相信默认格式是 Windows,但如果设置为 Mac 格式,则可能是它对 0 字节文件使用 CR 的原因。

相关内容