博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FTPClient上传 中文目录、中文文件名乱码问题
阅读量:7140 次
发布时间:2019-06-28

本文共 1620 字,大约阅读时间需要 5 分钟。

hot3.png

问题描述:

  使用org.apache.commons.net.ftp.FTPClient创建中文目录、上传中文文件名时,目录名及文件名中的中文显示为“??”。

原因:

  FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码。

解决方案:

  将中文的目录或文件名转为iso-8859-1编码的字符。参考代码:

   String name="目录名或文件名";

   name=new String(name.getBytes("GBK"),"iso-8859-1");// 转换后的目录名或文件名。

实例:

public boolean upLoadFile(File file, String path, String fileName) throws IOException {    boolean result = false;    FTPClient ftpClient = new FTPClient();    try {        ftpClient.connect(confService.getConfValue(PortalConfContants.FTP_CLIENT_HOST));        ftpClient.login(confService.getConfValue(PortalConfContants.FTP_CLIENT_USERNAME), confService                .getConfValue(PortalConfContants.FTP_CLIENT_PASSWORD));        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);        // make directory        if (path != null && !"".equals(path.trim())) {            String[] pathes = path.split("/");            for (String onepath : pathes) {                if (onepath == null || "".equals(onepath.trim())) {                    continue;                }                onepath=new String(onepath.getBytes("GBK"),"iso-8859-1");                                    if (!ftpClient.changeWorkingDirectory(onepath)) {                    ftpClient.makeDirectory(onepath);                    ftpClient.changeWorkingDirectory(onepath);                }            }        }        result = ftpClient.storeFile(new String(fileName.getBytes("GBK"),"iso-8859-1"), new FileInputStream(file));    } catch (Exception e) {        e.printStackTrace();    } finally {        ftpClient.logout();    }    return result;}

转载于:https://my.oschina.net/oncereply/blog/84607

你可能感兴趣的文章
MES之殇和工业IOT之春
查看>>
历史画作遭破坏,3D打印和 AI 来帮忙
查看>>
Atom飞行手册翻译: 3.8 编写spec
查看>>
智能健康行业突破不大,却走向“歪路”
查看>>
机器人也有触感了!斯坦福大学开发人工感觉神经系统让蟑螂抽搐
查看>>
5 Reasons Why You Should Try Kibana
查看>>
阿里云网络漏洞扫描系统AVDS(商业化)发布
查看>>
Pam认证模块
查看>>
解决tomcat"Could not reserve enough space for object heap"
查看>>
sersync实现主机实时双向同步
查看>>
卸载并重新配置mysql服务
查看>>
同行的一个案例---删除表,需要恢复
查看>>
python splinter 小坑说明
查看>>
JAVA并行框架:Fork/Join
查看>>
控制input输入格式
查看>>
linux系统上安装java
查看>>
38.进程管理与计划任务---PS、Top、Crontab
查看>>
0301_互连模拟
查看>>
一次XEN启动中的错误捕获
查看>>
重大里程碑:顶级科学家达成23条人工智能发展原则!
查看>>