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地址,多网卡的时候使用...
Apache FTPServer是一款开源的...总之,Apache FTPServer作为一个强大且灵活的FTP服务器解决方案,为企业和个人提供了可靠的数据传输环境。通过深入了解其配置和管理,你可以根据实际需求定制一个安全且高效的FTP服务。
Apache FTPServer 是一个基于 Java 的 FTP 服务器,支持多种操作系统,功能强大、灵活。 ### 安装配置 安装 Apache FTPServer 需要 Java 运行环境和 Apache Commons Net 库。 环境准备: * 安装 Java JDK * 安装...
Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...
在本资料包中,你将获得Apache Ftpserver的全套资源,包括源码、jar包以及配置说明,这将帮助你深入了解并使用这个强大的FTP服务器。 首先,`FtpServer配置详解.pdf`文档是关于Apache Ftpserver配置的详细指南。这...
这个特定的压缩包“apache-ftpserver-1.1.1.zip”包含了该服务器软件的v1.1.1版本,适用于Linux和Windows操作系统。FTP服务器的主要作用是为用户提供一个安全、可靠的文件上传和下载服务。 Apache FTPServer的特性...
Apache_FtpServer配置详解
https://blog.csdn.net/feiwei/article/details/5867555 根据这个博客重新编译的,可以解决IE访问Apache Ftp Server 中文目录、中文文件名乱码的问题
FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,Apache FTPServer是其一个流行的开源实现。它提供了一个灵活的框架,支持多种插件,可以根据需求进行定制。 2. **Apache FTPServer安装** 首先...
Apache FTP Server 是一个基于 Java 的开源 FTP 服务器,它提供了丰富的功能和灵活性,能够满足各种文件传输需求。在 CMMB 中广传媒项目中,为了实现更为安全和灵活的文件传输,采用了 Apache FTP Server,并将其与...
本文将深入探讨Apache Ftp Server的使用方法,包括安装、配置、管理以及常见问题解决。 **一、安装Apache Ftp Server** 1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html...
Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...
总的来说,Apache FtpServer的配置是一个涉及多个方面的过程,需要对FTP协议、网络配置和Java有一定的理解。正确配置后,它能提供高效、安全的FTP服务,满足各种企业级需求。通过深入学习和实践,你可以完全定制化你...
尤其在一些需要高效稳定传输大量数据的企业环境中,Apache FTP Server 成为了一个非常受欢迎的选择。CMMB中广传媒项目就是其中之一,该项目利用了Apache FTP Server这一开源组件,实现了与项目数据库的连接,并通过...
Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...
Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接启动和管理FTP服务。 首先,我们需要了解FTP(File Transfer Protocol)的基本概念。FTP是一种用于在网络...
Apache Ftp Server是一个广泛使用的开源FTP服务器,但在处理中文目录和文件名时可能会出现乱码问题,这主要是由于字符编码不兼容导致的。本篇文章将详细探讨这个问题以及如何通过GBK字符集来解决。 首先,FTP(File...
Apache FTPServer是一个开源的FTP服务器项目,它提供了一个强大、灵活且可扩展的平台来管理文件传输服务。这个服务器是基于Java实现的,因此具备跨平台性,可以在多种操作系统上运行,包括Windows、Linux和Mac OS等...
Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...
Apache FtpServer的核心设计目标是提供一个轻量级、高性能且易于扩展的FTP服务解决方案。 在Java应用程序中使用Apache FtpServer时,你需要包含一系列的jar包来支持其运行。这些jar包包含了服务器本身的基础组件、...