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下又可以成功呢? 求大侠来帮忙~~~谢谢
展开
 我来答
jixuIoon2
推荐于2018-03-22
知道答主
回答量:5
采纳率:100%
帮助的人:3.4万
展开全部
在连接之前设置ftpClient.setControlEncoding("GBK");连接之后再设置是没有作用的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c86dad5
2012-03-23 · TA获得超过290个赞
知道小有建树答主
回答量:425
采纳率:100%
帮助的人:430万
展开全部
ftpClient.setControlEncoding("GBK");
这个改成下面试试
ftpClient.setControlEncoding("UTF-8");
追问
不好使啊,GB2312也不好使……
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Java火狐
2012-03-23 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:144万
展开全部
试过换一下字符集吗?
追问
什么意思,可说说具体点吗? 谢谢。
追答
嗯,网络间传输,中文名都是经过转码的。
你设置的是GBK
ftpClient.setControlEncoding("GBK");
用一下gb18030试一下,这个是比较全一些。
如果这样不行,你用 urlencoder.encode
把中文名转成%xx%xx这样的形式,试一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式