让Apache的commons-net-3.3中的FTPClient支持中文

        最近做一个FTP客户端程序,要用到Apache的commons-net包中的FTPClient类,不过发现不支持中文,于是百度一下,果然有大牛给出解决方案,不过似乎得结合网上的两种方法,才能使自己的FTP客户端支持中文。

首先,在连接之后,登录之前,加上如下语句:

String charset = "GBK";
			try{		//发送命令,请求设置服务器的字符集为UTF-8
				if( FTPReply.isPositiveCompletion(Main.ftp.sendCommand("OPTS UTF8","ON")) )
				{
					charset = "UTF-8";
				}
			}catch(IOException e)
			{
				e.printStackTrace();
			}
			ftp.setControlEncoding(charset);

然后,把传给FTPClient实例方法或类方法的参数中与文件路径有关的字符串形参用如下方法进行转换:

try{
				tmp = new String(tmp.getBytes("UTF-8"),"iso-8859-1");	//转换字符集
			}catch(Exception f)
			{
				f.printStackTrace();
			}
如果UTF-8不行可以换其他编码试试,这个编码方式和程序中的字符串的编码方式有关。因为Java字符串默认编码方式是UTF-8,所以一般用UTF-8转换就可以了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值