从我的 iPhone 应用程序中,我将数据从文本输出到文件。当用Windows记事本打开时,数据全部在一行上,并且应该有一个新行的地方出现了一个块字符(表明它是一个无法识别的字符或其他字符)。当用windows写字板打开时,它显示得很好。
我的代码会有问题吗?我只是输出'
' 当我想要一条新线时。
注意:它可以与其他编辑器(如 Mac 和 Windows 上的 textedit、MS Word)一起正常工作。
Windows 默认使用
\r\n
作为行尾标记。记事本只能识别这一点,其他文本编辑器可能知道其他行结束样式并正确渲染。
编辑
正如 VonC answers 记事本进行了更新(2018 年),现在可以识别非 Windows 行尾序列。
我只是输出’ ' 当我想要一条新线时。
从 2018 年 5 月(6 年后)开始,您将会 获得换行符!
请参阅 Michel Lopez 的“在记事本中引入扩展行结尾支持”(以及 他的推文)
多年来,Windows 记事本仅支持包含 Windows 行结束符 (EOL) 的文本文档 - 回车符 (CR) 和换行符 (LF)。这意味着记事本无法正确显示在 Unix、Linux 和 macOS 中创建的文本文件的内容。
今天,我们很高兴地宣布我们已经解决了这个问题!
从当前的 Windows 10 Insider 版本开始,记事本将照常支持 Unix/Linux 行结尾 (LF)、Macintosh 行结尾 (CR) 和 Windows 行结尾 (CRLF)。
默认情况下,在记事本中创建的新文件将使用 Windows 行结束符 (CRLF),但现在可以查看、编辑和打印现有文件,正确维护文件的当前行结束格式。
另请注意,状态栏指示检测到的当前打开文件的 EOL 格式。
看到
.bashrc
终于正确显示了!
这是因为
\n
在 Windows 中并不代表完整的换行符。使用 \n
是进行换行的“Unix”方式。
在 Windows 上,有像 Notepad++ 这样的文本编辑器可以同时处理这两种情况,但 Notepad 在这方面确实很愚蠢。
我建议您在 iPhone 应用程序中创建一个设置,用户可以在 Windows 和 Unix 行结尾之间进行选择 - 那么这是他的责任:-)
最近遇到了这个问题,我确信是我的代码正在执行此操作,但事实证明记事本在以正确的格式呈现文件时出现问题。
我们如何解决这个问题?
记事本的这种行为无法修复,但这里有一个可以执行的解决方法列表,以便正确读取内容。
解决方法
您可以使用 Windows 写字板打开该文件,或者将文件内容粘贴到写字板然后再粘贴回记事本。这应该可以解决问题。
您也可以使用Notepad++打开文件,它是第三方文本阅读器,可以安装在windows系统上。
微软最近(2018 年 10 月)宣布记事本已在 Windows 10 版本 1809 中修复,因此将系统更新到 Windows 10 应该可以解决此问题(1809 之前的 Windows 版本受影响)
微软在 33 年后解决了这个问题!哎呀,解决问题需要很长时间,不是吗?
“微软在 33 年后解决了这个问题!哎呀,解决这个问题花了很长时间不是吗?”
微软没有修复任何问题。 Unix 使用自己的逻辑(基于文本终端通信逻辑),Apple 使用自己的逻辑(基于假设它们会有所不同),而 Microsoft 产品(这意味着 MS-DOS 和 MS Windows 环境)使用该逻辑这是来自使用点阵打印机,它是 IBM PC 的第一个输出设备。
要在每台与 EPSON ESC/P 标准兼容的打印机上实现下一行打印,您必须发送 0x0D 0x0A 字符序列,Microsoft World 的逻辑允许您只需发出命令即可在标准打印机上打印标准文本文件:复制文件名.txt PRN [Enter]