跨平台兼容性应该使用哪种行末?

5
我的Web应用程序允许用户下载文本文件。目前,这些文本文件采用Unix风格的\n行尾符,导致在Windows上的Notepad(以及可能是其他Windows工具)中打开时,换行符会丢失。考虑到我的用户中有很多人使用Notepad,我正在考虑将行尾符更改为Windows风格的\r\n。但是,这样做会对非Windows平台或替代编辑器造成某种问题吗?
(附言:恰好这些文件是即时生成的,因此我可以根据用户的操作系统设置行尾格式,但此时我试图保持简约,并且只是出于好奇。顺便说一下,我使用的是Django。)

如果您预计用户将在其首选文本编辑器中打开文件(而不是在Web浏览器中),我建议使用适合其操作系统的行尾。我认为这不会太费力。如果您必须选择其中之一,我会说Unix应用程序比Windows应用程序更容忍/r/n - Jonathon Reinhart
1个回答

4
我认为最好的选择是让用户决定。给他们一个下拉框来选择Windows/UNIX/Mac风格的行结尾。由于UNIX风格的行结尾最容易处理,因此您可以将文件保持规范化为UNIX风格的行结尾。

我不确定是否可以生成具有通用行结尾样式的文本文件。大多数工具(如git)会归一化其文件并让用户配置其所需的输出风格。Jeff撰写了一篇关于行结尾的重要文章,其中涉及了一些历史背景。


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