gpt4 book ai didi

Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java中FTPClient上传中文目录、中文文件名乱码问题解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

问题描述:

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

原因:

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

解决方案:

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

复制代码代码如下:

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

  。

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

2.设置linux环境变量 。

复制代码代码如下:

export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"

实例:

复制代码代码如下:

    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;     } 。

  。

最后此篇关于Java中FTPClient上传中文目录、中文文件名乱码问题解决方法的文章就讲到这里了,如果你想了解更多关于Java中FTPClient上传中文目录、中文文件名乱码问题解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com