日期:2014-05-20  浏览次数:20793 次

请教java中使用common-net-ftp,中文文件名和目录的问题!!!
我在用FTPClient类写了个批量删除FTP服务器上整个目录的程序,但是发现目录如果是中文的话,FTPClient.changeWorkingDirectory就无法进入到指定目录中,而且文件是中文的话删除也出现问题,总之对中文不支持。ftpClient.setControlEncoding这个方法也尝试了,可是用他只能解决ftpClient.list()列出文件信息的时候中文的问题,上面的问题还是没有解决。
  在网上看了好多文章都没有解决的好办法,在查询资料的过程中发现有一个程序中是这样写的,好像可以解决中文的问题,但又找不到它调用的这个第三方的工具包,请各位兄台帮忙看一些这个包有用过的吗?要去哪下载?或有什么其他的方法可以解决中文的问题,万分感谢!!!

import   org.uranus.util.StringUtils;
/**  
 *   远程文件路径编码(上传到ftp上的文件路径)  
 *  
 *   @param   remoteFilePath  
 *   @return  
 */  
 protected   String   enCodingRemoteFilePath(String   remoteFilePath)   {  
return   StringUtils.gbkToIso8859EnCoding(remoteFilePath);
 }

就是上面的程序中org.uranus.util.StringUtils这个类

------解决方案--------------------
Commons-net包实现ftp服务器的访问
------解决方案--------------------
把中文转化为/uxxxx形式表达。
------解决方案--------------------
从方法名上看意思很简单写个简单的你试试
public static String gbkToIso(String para) {
try {
return new String(para.getBytes("GBK"), "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
return "";
} catch (Exception e) {
return "";
}
}