ie无法上传文件名为奇数个汉字的文件
在UTF-8编码下,每个汉字被分配为3个字节存储。当我们通过GET方式请求奇数个汉字,或者直接读取存储在Cookies中的奇数个汉字时,IE的HTML解析引擎“自作主张”的将汉字(亦称“全角字符”)的高位截掉,最后作为两个字节显示出来。很显然,按照这个思路,这奇数个字的第三个字信息是不完整的,也就出现了上面第三个字乱码的情况。
只要是偶数个字则均可正常显示,只要是奇数个字则最后一个字符必定乱码。
修改字符集
org.apache.ftpserver.command.impl.OPTS_UTF8
session.write(LocalizedFtpReply.translate(session, request, context,
FtpReply.REPLY_200_COMMAND_OKAY, "OPTS.UTF8", null));
改为:
session.write(LocalizedFtpReply.translate(session, request, context,
FtpReply.REPLY_502_COMMAND_NOT_IMPLEMENTED, "OPTS.UTF8", null));
注意:在这里,IE会忽略了202回复并继续以utf8模式处理服务器发送的ANSI数据。
解决办法是把回复代码改为502或504。
http://topic.csdn.net/t/20040422/18/2997663.html
org.apache.ftpserver.listener.nio.FtpServerProtocolCodecFactory
private ProtocolDecoder decoder = new TextLineDecoder(Charset
.forName("UTF-8"));
改为:
private ProtocolDecoder decoder = new TextLineDecoder(Charset
.forName("GBK"));
org.apache.ftpserver.IODataConnection
writer = new OutputStreamWriter(out, "UTF-8");
改为:
writer = new OutputStreamWriter(out, "GBK");
大功告成。
另外如果FtpReply有中文会出现乱码
org.apache.ftpserver.listener.nio.FtpResponseEncoder
private static final CharsetEncoder ENCODER = Charset.forName("UTF-8")
.newEncoder();
改为:
private static final CharsetEncoder ENCODER = Charset.forName("GBK")
.newEncoder();
分享到:
相关推荐
从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 <!--ftp端口 --> <!--绑定的服务器IP地址,多网卡的时候使用...
https://blog.csdn.net/feiwei/article/details/5867555 根据这个博客重新编译的,可以解决IE访问Apache Ftp Server 中文目录、中文文件名乱码的问题
Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...
Apache Ftpserver 全套,包括源码, jar包 及配置说明,需要的就下载吧
apache ftpserver使用讲解,可以配置ftpserver与项目的数据库进行连接,对ftp用户的用户名、密码进行校验,校验通过后可以访问表中配置好的访问路径。
apache ftpserver Mysql配置
该资源提供了与Apache配合使用的FTP服务器安装包,支持FTP服务的构建。
apache ftpserver使用讲解,可以配置ftpserver与项目的数据库进行连接,对ftp用户的用户名、密码进行校验,校验通过后可以访问表中配置好的访问路径。
apache ftpserver 源码嵌入eclipse工程版,所有配置已配好,myserver.java右键 run as java aplication 运行即可。登录名:admin 密码:admin 还有一个名字一样的资源,也是我上传的,那个账号找不回来了
Android FTP server 用org.apache.ftpserver实现, 可以设置端口号, 匿名或用户名密码 https://blog.csdn.net/weixin_42065195/article/details/106944004
apache ftpserver project
这是在eclipse上创建的项目,下载源码包导入即可。 在运行之前自己在MySQL上创建数据库,名如:ftpserver,再导入里面提供的...有了这套源码,不出十分钟你就可以搞懂怎么在你的Spring项目里面整合Apache FTPServer了。
Apache_FtpServer配置详解
NULL 博文链接:https://self4j.iteye.com/blog/910701
Apache FtpServer详细配置
Apache Ftpserver Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且 可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行, 也可以...
apache-ftpserver-1.0.6
用Java调用apache.ftpserver.FtpServer相关API完成FTP的被动模式实现。
JavaWeb集群环境下的FTP文件服务器配置使用