【发布时间】:2015-09-17 15:30:31
【问题描述】:
问题说明了一切。是否可以使用 ASCII 模式通过 FTP 传输 UTF-8 文件?或者这会导致字符写错吗?谢谢!
【问题讨论】:
问题说明了一切。是否可以使用 ASCII 模式通过 FTP 传输 UTF-8 文件?或者这会导致字符写错吗?谢谢!
【问题讨论】:
UTF-8 编码旨在向后兼容 ASCII 编码。
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 位编码。
【讨论】:
RFC 2640,从 1999 年开始,更新 FTP 协议以支持国际化。它要求 FTP 服务器使用 UTF-8 作为 2.2 节中的传输编码。所以只要你不尝试上传到DEC TOPS-20 服务器(stores five 7-bit bytes within a 36-bit word),你应该没问题。
【讨论】: