Java FTPClient 连接FTP,上传文件,不能以中文保存 20
FTPClientftpClient=newFTPClient();FileInputStreamfis=null;ftpClient.connect("192.168....
FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;
ftpClient.connect("192.168.0.115", 21);
ftpClient.login("root", "toor");
ftpClient.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
BufferedInputStream buffIn=null;
buffIn=new BufferedInputStream(new FileInputStream(fileName));
boolean result= ftpClient.storeFile(f.getName(), buffIn);
用的是apache的包,FTP用的是Wing FTP,CMD下登陆FTP,可以put 上传中文文件。
但是java程序里,可以读取中文名字的文件,但是不能以中文名字保存。如果这样
ftpClient.storeFile("helloworld", buffIn),就行,一旦名字中含有中文,就失败。但是CMD下又可以成功呢? 求大侠来帮忙~~~谢谢 展开
FileInputStream fis = null;
ftpClient.connect("192.168.0.115", 21);
ftpClient.login("root", "toor");
ftpClient.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
BufferedInputStream buffIn=null;
buffIn=new BufferedInputStream(new FileInputStream(fileName));
boolean result= ftpClient.storeFile(f.getName(), buffIn);
用的是apache的包,FTP用的是Wing FTP,CMD下登陆FTP,可以put 上传中文文件。
但是java程序里,可以读取中文名字的文件,但是不能以中文名字保存。如果这样
ftpClient.storeFile("helloworld", buffIn),就行,一旦名字中含有中文,就失败。但是CMD下又可以成功呢? 求大侠来帮忙~~~谢谢 展开
3个回答
展开全部
在连接之前设置ftpClient.setControlEncoding("GBK");连接之后再设置是没有作用的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ftpClient.setControlEncoding("GBK");
这个改成下面试试
ftpClient.setControlEncoding("UTF-8");
这个改成下面试试
ftpClient.setControlEncoding("UTF-8");
追问
不好使啊,GB2312也不好使……
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试过换一下字符集吗?
追问
什么意思,可说说具体点吗? 谢谢。
追答
嗯,网络间传输,中文名都是经过转码的。
你设置的是GBK
ftpClient.setControlEncoding("GBK");
用一下gb18030试一下,这个是比较全一些。
如果这样不行,你用 urlencoder.encode
把中文名转成%xx%xx这样的形式,试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询