【发布时间】:2018-07-30 15:32:19
【问题描述】:
如果我想将某个文件从一个系统传输到另一个包含非英文字符的系统。那么FTP是否支持UTF字符集呢?
【问题讨论】:
-
你的意思是文件名有Unicode字符还是文件内容?
标签: utf-8 character-encoding ftp protocols file-transfer
如果我想将某个文件从一个系统传输到另一个包含非英文字符的系统。那么FTP是否支持UTF字符集呢?
【问题讨论】:
标签: utf-8 character-encoding ftp protocols file-transfer
我们谈论的是文件名 Unicode 支持。要传输 UTF-8 编码的文件,请使用“二进制”模式。
虽然 RFC 2640 扩展了原始 FTP 规范以支持非 ASCII 文件名,但并非每个 FTP 服务器或 FTP 客户端都支持它。
您可以通过在客户端的命令终端上运行以下命令来检查您的服务器实现:
FEAT
并检查:
UTF8
在响应中。如果没有,您将不得不猜测远程端的 8 位编码或将您的文件名转换为 ascii。
【讨论】:
如果您在谈论 FTP 协议,它似乎是受支持的。
FTP 协议在 1985 年发布的 RFC 959 中指定。 FTP协议是在原有的Telnet协议之上设计的, 这在 RFC 854 中指定。 Telnet 的相关部分 关于 FTP 的规范是那些涵盖网络虚拟 终端 (NVT)。根据 RFC 854,NVT 要求使用 (7 位)ASCII 作为字符集。使用任何其他字符集 需要明确协商。此字符集仅包含 127 不同的字符:英文字母和数字,标点符号 字符和一些控制字符。重音字母、变音符号或 ASCII 字符集中不包含其他脚本。为了 为了支持非英文字符,FTP 规范是 1999 年在 RFC 2640 中扩展。此扩展需要使用 UTF-8 作为字符集。这个字符集是一个严格的超集 ASCII,每个有效的 ASCII 字符也是相同的字符 UTF-8。 UTF-8 字符集可以显示任何有效的 Unicode 特点。这包括变音符号、重音字母以及不同的 脚本。此扩展与 RFC 959 完全向后兼容。 只要您只使用英文字符,如果 您使用的软件是否支持 RFC 2640。但是,如果您使用 不使用 RFC 2640 兼容软件的非英文字符, 会有问题——完全不是自己制造的问题 遵守规范。
你可以阅读更多here
【讨论】: