【问题标题】:Transfer UTF-8 file over FTP using ASCII mode?使用 ASCII 模式通过 FTP 传输 UTF-8 文件?
【发布时间】:2015-09-17 15:30:31
【问题描述】:

问题说明了一切。是否可以使用 ASCII 模式通过 FTP 传输 UTF-8 文件?或者这会导致字符写错吗?谢谢!

【问题讨论】:

    标签: encoding utf-8 ftp ascii


    【解决方案1】:
    1. UTF-8 编码旨在向后兼容 ASCII 编码。

    2. RFC 959 要求 FTP 客户端和服务器将 ASCII 模式的文件视为 8 位:

      3.1.1.1。 ASCII 类型

      ...

      发送者从内部字符转换数据 表示为标准 8 位 NVT-ASCII 表示(参见 Telnet 规范)。收件人 将数据从标准形式转换为他自己的 内部形式。

      按照NVT标准,序列 应在必要时用于表示行尾 的文本。 (见文末文件结构的讨论 数据表示和存储部分。)

      ...

      使用标准的 NVT-ASCII 表示意味着数据 必须被解释为 8 位字节。


    因此,即使 UTF-8 不知道 FTP 客户端或服务器也应该正确翻译行尾,因为它们在 ASCII 和 UTF-8 中编码相同。他们不应该破坏其他角色。


    从实际的角度来看:我还没有遇到过确实存在 8 位文本文件问题的服务器。我是捷克人,所以我经常使用 UTF-8,过去使用 Windows-1250 和 ISO/IEC 8859-2 8 位编码。

    【讨论】:

      【解决方案2】:

      RFC 2640,从 1999 年开始,更新 FTP 协议以支持国际化。它要求 FTP 服务器使用 UTF-8 作为 2.2 节中的传输编码。所以只要你不尝试上传到DEC TOPS-20 服务器(stores five 7-bit bytes within a 36-bit word),你应该没问题。

      【讨论】:

      • RFC 2640 是关于文件名编码,而不是文件内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2015-06-13
      • 1970-01-01
      • 2011-05-19
      相关资源
      最近更新 更多