Windows记事本不支持换行符'\ n'

时间:2012-01-06 08:08:23

标签: iphone objective-c newline text-files

从我的iPhone应用程序中,我将数据从文本输出到文件。当用Windows记事本打开时,数据全部在一行上,并且应该有一个新行,其中存在一个块字符(表明它是一个无法识别的字符或其他东西)。用windows wordpad打开时,显示效果很好。
我的代码会出错吗?当我需要换行时,我只输出'\ n'。

enter image description here

注意:它可以与其他编辑器一起使用,例如textedit,Mac Word和Windows上的MS Word。

4 个答案:

答案 0 :(得分:17)

Windows默认使用\r\n作为行尾标记。记事本只能识别,其他文本编辑器可能知道其他行端样式并正确呈现。

答案 1 :(得分:4)

  

我只是输出' \ n'当我想要一条新线时。

从2018年5月开始(6年后),你获得换行!

参见" Introducing extended line endings support in Notepad" Michel Lopez(和his tweet

  

多年来,Windows Notepad仅支持包含Windows End of Line(EOL)字符的文本文档 - 回车(CR)和换行(LF)。这意味着Notepad无法正确显示在Unix,Linux和macOS中创建的文本文件的内容。

     

今天,我们很高兴地宣布我们已经解决了这个问题!

     

当前的Windows 10 Insider版本开始,Notepad将像往常一样支持Unix / Linux行结尾(LF),Macintosh行结尾(CR)和Windows Line endings(CRLF)。

     

默认情况下,在记事本中创建的新文件将使用Windows行结尾(CRLF),但现在可以查看,编辑和打印现有文件,正确维护文件的当前行结束格式。

     

另请注意,状态栏指示检测到的当前打开文件的EOL格式。

查看最终正确显示的.bashrc

https://msdnshared.blob.core.windows.net/media/2018/05/Notepad-after.png

答案 2 :(得分:2)

这是因为\n不代表Windows中的完整换行符。使用\n是“Unix”的换行方式。

在Windows上,有像Notepad ++这样的文本编辑器可以同时处理这两个文件,但记事本在这方面真的很蠢。

我建议您在iPhone应用程序中创建一个设置,用户可以在Windows和Unix行结尾之间进行选择 - 然后由他负责: - )

答案 3 :(得分:0)

最近遇到了这个问题,我确信这是我的代码执行的,但是事实证明,记事本在以正确的格式呈现文件时遇到了问题。

我们如何解决这个问题?

记事本的这种行为尚无修复程序,但是这里列出了可以执行的一些变通方法,以便正确读取内容。

解决方法

  1. 您可以使用Windows写字板打开文件,也可以将文件内容粘贴到写字板中,然后再粘贴到记事本中。这应该可以解决问题。

  2. 您还可以使用Notepad ++打开文件,该文件是第三方文本阅读器,可以安装在Windows系统上。

  3. Microsoft最近(2018年10月)宣布Windows 10版本1809中已修复记事本,因此将系统更新到Windows 10应该可以解决此问题(影响1809之前的Windows版本)

Microsoft在33年后解决了这个问题!!!哎呀,要解决这个问题还需要很长时间?