FTP 文件上传 - 文件名编码错误
FTP File Upload - Filename Encoding Error
我正在使用 apache 的 commons-net 3.5 将文件上传到远程 FTP 服务器,并在打开连接之前将连接编码设置为 UTF-8,如下所示。
ftpClient.setAutodetectUTF8(true);
ftpClient.setControlEncoding("UTF-8");
这是发送文件的部分
private void uploadFile(byte[] data, String path, String fileName, FTPClient ftpClient) throws IOException {
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
boolean uploadSuccess = ftpClient.storeUniqueFile(fileName, new ByteArrayInputStream(data));
问题来了;发送名称包含土耳其语字符的文件时,结果文件命名不正确。喜欢,
Kimlikş.pdf -> KimlikÅ.pdf
但如果我使用 ftp4j,一切正常。以前有人有过这个吗?数据不正确地从我这边发送。我使用 Microsoft Network Monitor 监控流量。这是原始请求:
FTP FTP:Request from Port 62642,'STOR KimlikÅ.pdf' {TCP:5879, IPv4:134}
我猜是apache的commons-net出了问题,所以我迁移到ftp4j,问题就没有了。
<dependency>
<groupId>it.sauronsoftware</groupId>
<artifactId>ftp4j</artifactId>
<version>1.6</version>
</dependency>
尝试使用 WinSCP - 它运行得非常棒。
https://winscp.net/eng/download.php
没有 FileZilla,没有 TotalCommander - 只有 WinSCP。
- 然后再次复制(例如,我有大约 6k 个文件,只有 50 个带有西里尔文)仅在问题提示“全部否”时给出,WinSCP 仅复制剩余文件。太棒了!
5 星给免费软件!
我正在使用 apache 的 commons-net 3.5 将文件上传到远程 FTP 服务器,并在打开连接之前将连接编码设置为 UTF-8,如下所示。
ftpClient.setAutodetectUTF8(true);
ftpClient.setControlEncoding("UTF-8");
这是发送文件的部分
private void uploadFile(byte[] data, String path, String fileName, FTPClient ftpClient) throws IOException {
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
boolean uploadSuccess = ftpClient.storeUniqueFile(fileName, new ByteArrayInputStream(data));
问题来了;发送名称包含土耳其语字符的文件时,结果文件命名不正确。喜欢,
Kimlikş.pdf -> KimlikÅ.pdf
但如果我使用 ftp4j,一切正常。以前有人有过这个吗?数据不正确地从我这边发送。我使用 Microsoft Network Monitor 监控流量。这是原始请求:
FTP FTP:Request from Port 62642,'STOR KimlikÅ.pdf' {TCP:5879, IPv4:134}
我猜是apache的commons-net出了问题,所以我迁移到ftp4j,问题就没有了。
<dependency>
<groupId>it.sauronsoftware</groupId>
<artifactId>ftp4j</artifactId>
<version>1.6</version>
</dependency>
尝试使用 WinSCP - 它运行得非常棒。
https://winscp.net/eng/download.php
没有 FileZilla,没有 TotalCommander - 只有 WinSCP。
- 然后再次复制(例如,我有大约 6k 个文件,只有 50 个带有西里尔文)仅在问题提示“全部否”时给出,WinSCP 仅复制剩余文件。太棒了!
5 星给免费软件!