【问题标题】:What line endings to use for cross-platform compatibility?使用什么行尾来实现跨平台兼容性?
【发布时间】:2014-01-23 06:05:31
【问题描述】:

我的 webapp 允许用户下载文本文件。目前,文本文件具有 Unix 样式的 \n 行结尾,因此,当在 Windows 上的记事本(可能还有其他 Windows 实用程序)中打开时,缺少换行符。由于记事本在我的用户中很受欢迎,我正在考虑将行尾更改为 Windows 样式的\r\n。但这会在非 Windows 平台或替代编辑器上导致某种问题吗?

(旁注:碰巧这些文件是动态生成的,所以我可以在用户的​​操作系统上调整行尾格式,但在这一点上,我试图做到简约,也只是好奇一般。顺便说一下,使用 Django。)

【问题讨论】:

  • 如果您希望用户在他们喜欢的文本编辑器中打开文件(而不是他们的网络浏览器),我建议使用适合其操作系统的行尾。我不认为它会做那么多工作。如果您必须选择其中一个,我会说 Unix 应用程序对 /r/n 的容忍度往往高于 Windows 应用程序对 /n 的容忍度。

标签: windows unix cross-platform text-files line-endings


【解决方案1】:

我认为最好的选择是让您的用户来决定。给他们一个下拉框来选择 Windows/UNIX/Mac 样式的行尾。您可以将文件标准化为 UNIX 风格的结尾,因为它们最容易使用。

我不确定您是否可以生成具有通用行尾样式的文本文件。像 git 这样的大多数工具都会标准化他们的文件,并让用户配置他们喜欢的输出样式。 Jeff 写了a great article on line endings,这涉及到一些历史背景。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多