【问题标题】:generating a CSV file, what carriage return character should I use?生成 CSV 文件,我应该使用什么回车符?
【发布时间】:2009-12-29 19:25:43
【问题描述】:

我必须创建一个代表订单的 CSV 文件。

文件将通过 FTP 传输,并导入另一个系统。

我应该使用什么换行符/回车符?

我很确定接收端将是一个微软系统,有没有办法让它与服务器无关?

【问题讨论】:

    标签: c# ftp newline carriage-return


    【解决方案1】:

    您应该使用System.Environment.NewLine,或向该外部应用人员询问方向。

    【讨论】:

      【解决方案2】:

      对创建文件的任何服务器使用默认值。使用 FTP,以文本模式(默认模式,IIRC)传输文件。它会在接收端自动转换行尾。

      总之,您不需要做任何特别的事情。 FTP 已经以与服务器无关的方式处理它。

      【讨论】:

        【解决方案3】:

        所有操作系统都支持仅使用换行符(LF、'\n'、chr(10)、^J 等)。各个应用程序的处理方式各不相同,尤其是在 Microsoft 世界中。

        内部使用 CR LF 对的操作系统(例如 MSDOS、Windows、stream_CRLF 模式下的 OpenVMS 等)能够仅处理 LF。

        在 FTP 中,使用 ascii 命令让它正确处理您的文件。

        【讨论】:

        • “所有操作系统都支持仅使用换行符(LF、'\n'、chr(10)、^J 等)。” - Windows 确实知道 LF 是什么,但重要的是消费应用程序的行为方式。许多 Windows 应用程序仅将 CR+LF 识别为换行符,例如记事本。
        【解决方案4】:

        如果您的目标是 Microsoft Windows 系统,请使用 CR+LF,这是本机 Windows 行尾。

        【讨论】:

          【解决方案5】:

          不幸的是,您将不得不在 MS 或非 MS/Unix(y) 换行符之间做出选择。

          MS 是 CR+LF,非 MS 就是 LF。

          更多信息在这里http://en.wikipedia.org/wiki/Newline

          在 MS 系统上,许多应用程序可能会正确解释 LF 换行符,但有些则不会,例如记事本。如果您想保证所有基于 MS 的应用程序都能正确解释您的换行符,那么您将不得不使用 CR+LF,但这会以非 MS 系统上的某些应用程序中的双换行符为代价(某些应用程序在非 MS 系统会将 CR+LF 解释为单个换行符)。

          【讨论】:

            猜你喜欢
            • 2010-09-18
            • 1970-01-01
            • 2023-04-08
            • 2011-01-30
            • 2011-07-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-04-07
            相关资源
            最近更新 更多