文档章节

使用Appache的FTPClient遇到的一些文件名乱码问题-总结(遇到了再续....)

康州牧码人
 康州牧码人
发布于 2015/04/28 17:56
字数 544
阅读 13
收藏 0

1.       问题:在文件上传FTP的时候,文件名是乱码?

解释:

首先要明白两个编码,FTP协议的编码,FTP服务器的编码

FTP协议编码:指的是FTP传输协议所用的编码,用的是ISO-8859-1

FTP服务器编码:指的是所用的FTP服务器的编码(如,IIS :GBK

需要明确:源文件,传输协议,FTP服务器

一:我们的源文件是通过传输协议传输到FTP服务器的,所以,如果要让FTP服务器显示的名称应该要和源文件一样。所以两者的编码要一致!统一使用 GBK,因为FTP服务器的编码我们改不了

二:既然两者中间有一个FTP传输协议,协议的名称是ISO-8859-1,因此,我们必须把源文件转换成ISO-8859-1,才可以避免乱码,另外,FTP服务器的编码是GBK,所以,我们本地转码需要从GBK转换成ISO-8859-1

/** 本地字符编码 */

private static String LOCAL_CHARSET = "GBK";

// FTP协议里面,规定文件名编码为iso-8859-1

private static String SERVER_CHARSET = "ISO-8859-1";

String fileName = new String(file.getName().trim().getBytes(LOCAL_CHARSET), SERVER_CHARSET);

三:FTPClient 不应该设置任何编码,就是用默认的就好(默认是ISO-8859-1


2问题:Android 使用FTPClient下载FTp上面的问题件的时候,如何设置编码

一:一定要设置,FTPClient的编码是 GBK,不然无法得拿到真实的文件名

二:根据真实的文件名获取文件后,下载之前,要不这个真实的文件名转成ISO-8859-1然后才下载,以为FTP的传输协议就是ISO-8859-1,直接发GBKFTP不认,那肯定就找不到该文件啦

总结:一定要知道目标编码,传输编码,然后把源文件编码设置与目标编码一致,然后转换成传输编码格式以便传输

© 著作权归作者所有

共有 人打赏支持
康州牧码人
粉丝 6
博文 24
码字总数 10993
作品 0
深圳
程序员
私信 提问
求救,关于apache FTPClient 的乱码问题?

在使用Apache 的 org.apache.commons.net.ftp.FTPClient 的时候。 不管是 单个文件的上传 、删除、重命名等涉及到中文的问题,都没有乱码的出现。因为在操作FTP之前都给中文路径进行了转码“...

KuhnWei
2017/11/08
21
1
ftpsClient使用,慧字被屏蔽,请教大神

最近有用ftp做一个文件传输,用的是org.apache.commons.net.ftp.FTPClient/FTPSClient,其中FTPClient使用正常,但是使用ssl证书走FTPSClient时,每当碰到文件名带“慧”字的时候,就无法读取...

wzxc
2017/05/04
74
0
java实现FTP多线程断点续传,上传下载!

package com.ftp; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintW......

狼狼A狗
2011/03/22
0
3
ftp下载文件文件名乱码问题

package mine.backstage.cms.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat......

美少女壮士喵
2017/11/15
2
0
org.apache.commons.net.ftp包开发FTP客户端,实现断点续传,中文支持

利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类。主要实现一下功能 1.支持上传下载。支持断点续传 2.支持进度汇报 3.支持对于中文目录及中文文件创建的支持。 具体请看代码...

御风林海
2013/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

storm 环境搭建

1.下载解压 下载地址:http://storm.apache.org/downloads.html

MrPei
13分钟前
0
0
Python Base - 读写文件,字符串拼接,单引号

字符转义 读写文件cvs 字符串拼接,替换 import csvcsv_file_name = 'cardbin.csv'# insert into `card_bin_code` (name_of, code_of, card_no_prefix, bank_code) values ('中国银行......

园领T
15分钟前
0
0
基于JQUERY BOOTSTRAP 最简单的loading遮罩层

<%--loading遮罩层--%><div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">   <div style="width: 200px;height:20px; z-index: 20000; position: abs......

颖辉小居
15分钟前
0
0
springboot+kafka

1,首先springboot对kafka的支持也很好,同样是在配置文件中配置好参数,然后就可以直接使用。先说一下,很简单,,,不要怕 2,我用的依赖是 <dependency> <groupId>org.springframewor...

我真是小菜鸡
19分钟前
2
0
webservice动态客户端自我记录备份(spring boot)

动态客户端相比直接调用webservice的客户端代码要简单很多,但实际上很多工作是java自己替我们做掉了。简单记录一下内容,以备后续使用: pom文件只需要引入: <!-- CXF webservice --><de...

checkboxMan
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部