vsftpd下载文件时内容乱码

windows客户端访问Linux服务端的ftp并下载文档时,内容会出现乱码,这是由于vsftpd文件服务器不支持转码功能

通过java FTPClient下载

方法为

OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(new String(f.getName().getBytes("GBK"),"UTF-8"), is);

这样会出现文件内容乱码,试过了改各种编码集,还是不行,最后发现!!!

在下载方法之前,改变outputstream为二进制,问题得到解决

改为

ftp.setFileType(ftp.BINARY_FILE_TYPE);

OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(new String(f.getName().getBytes("GBK"),"UTF-8"), is);

即可解决你的问题

哈哈哈哈哈哈哈哈哈!!!!!!!!!!!!!!!!!!!!

猜你喜欢

转载自www.cnblogs.com/Monroyhahaha/p/11899518.html