发布于 2016-07-16 14:18:53 | 97 次阅读 | 评论: 1 | 来源: 网友投递

这里有新鲜出炉的Java设计模式,程序狗速度看过来!

Java程序设计语言

java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。


这篇文章主要介绍了Java中FTPClient上传中文目录、中文文件名乱码问题解决方法,本文使用apache-commons-net工具包时遇到这个问题,解决方法很简单,需要的朋友可以参考下

问题描述:

  使用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压缩zip文件中文乱码问题解决方法
java中文乱码之解决URL中文乱码问题的方法
java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法
java生成csv文件乱码的解决方法示例 java导出csv乱码
Java中出现错误:“编码GBK的不可映射字符”的解决方法
java实现PPT转PDF出现中文乱码问题的解决方法
Java中tomcat memecached session 共享同步问题的解决办法
java中tomcat的80端口被占用问题解决
安装J2EE的SDK报错:could not find the required version of the Java(TM)2 Runtime Environment in '(null)'的解决方法
java使用sigar 遇到问题的快速解决方法
Java基于Runtime调用外部程序出现阻塞的解决方法
最新网友评论  共有(1)条评论 发布评论 返回顶部
mzp 发布于2016-07-29 19:18:11
1W个赞,感谢楼主!
支持(0)  反对(0)  回复
月排行榜

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务