`
szhnet
  • 浏览: 109856 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于FTP的中文问题

    博客分类:
  • java
阅读更多
    最近用apache的commons net进行ftp操作时,对文件名包含中文的文件总是操作失败。ftp server用的是Serv-U,看了一下日志

发现有乱码。上网查了一下,要转码为ISO-8859-1。于是对文件名进行转码
new String(f.getName().getBytes("GBK"), "ISO-8859-1")
但转码之后还是不行,日志里还是有乱码。后来又瞎试了一通,结果依然不行。于是不得以开始怀疑是Serv-U的问题,上网查了一下,原来默认安装的Serv-U对所有已收发的路径和文件名使用UTF-8编码,所以就会产生乱码的问题。可以修改Serv-U的设置来解决。



将“对所有已收发的路径和文件名使用UTF-8编码”前面的勾去掉就好了。如果不能修改ftp服务器的话怎么办呢?实际上由于Serv-U默认开启了UTF-8编码那么只要这样进行转码就可以了
new String(f.getName().getBytes("UTF-8"), "ISO-8859-1")

    但是万一ftp服务器没有开启UTF-8呢?有些ftp服务器可能根本就不支持utf-8,如果是这样怎么办呢?可以看一下FlashFXP是怎么办到的,查看FlashFXP的日志

原来它向服务器发送了OPTS UTF8 ON命令,来开启服务器对UTF-8的支持。所以我们也可以仿照FlashFXP那样向服务器发送该命令。
String charsetName = "GBK";
if (FTPReply.isPositiveCompletion(ftpC.sendCommand("OPTS UTF8", "ON"))) // 发送OPTS UTF8指令,尝试支持utf-8
	charsetName = "utf-8";
如果支持就用UTF-8,不支持就默认GBK。然后转码的时候
new String(f.getName().getBytes(charsetName), "ISO-8859-1")

    这样就不管ftp服务器是否支持utf8,都可以解决问题了。
  • 大小: 4.4 KB
  • 大小: 144.5 KB
  • 大小: 76.2 KB
  • 大小: 28.5 KB
  • 大小: 28.5 KB
  • 大小: 7 KB
1
1
分享到:
评论
3 楼 panyong_8 2013-01-06  
  感谢
2 楼 zzbatluzhou 2011-04-29  
我转走了
1 楼 zzbatluzhou 2011-04-29  
非常感谢!!

相关推荐

    Core FTP Server 说明书(中文)

    Core FTP Server 说明书(中文) Core FTP Server 是一个功能强大且灵活的 FTP 服务器软件,旨在提供一个安全、可靠、高效的文件传输解决方案。本说明书旨在为用户提供一个全面的了解 Core FTP Server 的使用指南,...

    全中文FTP服务器 Quick Easy FTP Server V3.9.1 绿色版

    4. **日志记录**:为了监控服务器活动和排查问题,FTP服务器通常会记录用户的登录、传输和其他操作。Quick Easy FTP Server可能会提供日志功能,帮助管理员跟踪服务器的运行状态。 5. **安全考虑**:FTP协议本身不...

    FTP工具中文版

    FTP工具中文版是为了方便中文用户使用而特别制作的,解决了官方英文版本对于非英语使用者可能存在理解和操作困难的问题。虽然官方可能已经提供了部分汉化,但这个中文版更注重全面性和用户体验,弥补了官方汉化不...

    DelphiXe8 FTP客户端程序解决中文乱码问题增加进度条功能

    在使用Delphi XE8开发FTP客户端程序时,可能会遇到一些常见的问题,如中文乱码和缺乏进度条显示。这两个问题对于用户来说都是相当不便的,因为中文乱码可能导致文件名无法正确识别,而无进度条则使得用户无法了解...

    全中文FTP服务器 Quick Easy FTP Server V3[1].8

    全中文FTP服务器 Quick Easy FTP Server V3[1].8全中文FTP服务器 Quick Easy FTP Server V3[1].8全中文FTP服务器 Quick Easy FTP Server V3[1].8全中文FTP服务器 Quick Easy FTP Server V3[1].8全中文FTP服务器 ...

    JAVA WEB FTP 中文上传工具

    4. **中文文件名处理**:FTP协议本身不处理编码问题,因此在上传中文文件名时,需要在客户端进行正确的字符编码转换,通常使用UTF-8编码。Java中的`java.io.OutputStreamWriter`和`java.nio.charset.Charset`类可以...

    小体积 FTP 中文

    标题中的“小体积 FTP 中文”意味着这是一款针对中文用户设计的小型FTP客户端软件,它具有轻量级的特性,不占用大量系统资源,适用于那些对磁盘空间有限或者追求简洁高效操作界面的用户。FTP(File Transfer ...

    ftp中文版软件

    ftp中文版,FileZilla_Server_cn-0_9_46,服务器端软件

    FTP上传文件,读取文件中文字符,解决乱码问题

    FTP上传文件,FTP解决乱码问题 解决乱码讲new String(s.getBytes("gbk"),"ISO8859-1");//其转换后还是乱码 改成国际中文标准码就行了

    FTP协议中文版本

    ### FTP协议中文版本知识点详解 #### 一、概述 **文件传输协议(FTP)**是一种用于在网络上进行文件传输的标准协议。此文档详细介绍了FTP协议的关键特性及其演变历程,并且涵盖了新加入的一些可选命令,例如CDUP...

    FTP中文免费版

    这款FTP中文免费版具有以下主要特性: 1. **用户界面友好**:软件界面采用中文显示,对中文用户友好,操作直观,减少了语言障碍带来的困扰。 2. **多会话支持**:可以同时管理多个FTP连接,方便用户在不同的服务器...

    FTP过期及上报问题

    本文主要讨论的是FTP服务过期以及如何处理这一问题。 FTP过期问题通常涉及到FTP服务器的授权和许可证管理。在这种情况下,服务器软件可能设定了一个特定的试用期限,超过这个期限后,服务会自动停止或进入未注册...

    QT的FTP实现例子,支持中文文件

    总结来说,这个项目展示了如何将一个开源的FTP客户端实现从一个开发环境移植到另一个,并解决了中文文件名的支持问题。虽然它缺乏某些高级特性,但作为基础框架,对于学习QT编程和FTP协议的实现非常有价值。对于需要...

    TYPSoft FTP ServerV1.11 简体中文版

    市面上比较常见的FTP搭建工具都过于专业,例如IIS的FTP功能,SERV-U软件等。虽然使用这些软件建立的FTP在功能上非常强大,但却存在两个明显不足,第一是FTP服务器初始工作比较繁琐,需要具备一定的计算机水平才能...

    FTP服务器绿色单文件中文免费版(FTPserver)

    FTP服务器绿色单文件中文免费版(FTPserver) FTPserver这是一款免费的、绿色的(无需安装,只有一个文件)、小巧的(84KB)的FTP服务器软件。可以轻松地将它放在U盘里,邮箱里,网盘里,或者网站上随时下载,这样,就有了...

    Quick Easy FTP Server V4.0.0 简体中文绿色免费版

    这款FTP服务器的简体中文版本方便了中文用户进行设置和管理,尤其适合那些对英语界面操作不太熟悉的用户。 FTP服务器的主要功能是提供一个平台,允许用户通过FTP客户端连接到服务器,上传或下载文件。Quick Easy ...

    FTP Server全中文FTP服务器

    全中文FTP服务器软件,反应迅速,操作方便,实现了标准FTP服务器所具有的功能 软件具有以下特点: 1.软件安装程序极小,但性能毫不逊色于专业FTP服务器软件 2.功能全面.具备完整的帐户管理,便捷的服务器配置,安全性设置...

    FTP上传工具.

    "使用更新说明.txt"文件很可能包含了关于如何更新软件、解决常见问题以及软件新功能的介绍,这对于用户正确地使用和维护软件至关重要。而"FlashFXP免费版下载 V5.1.0.3829(强大的FXP-FTP工具)中文版_FlashFXP - pc6...

    FTP 简体中文绿色版

    在这个"FTP 简体中文绿色版"中,我们看到的是CuteFTP的一个特定版本,即5.0.1.0,特别为简体中文用户设计,并且适用于Windows XP和Windows 7操作系统。 CuteFTP是一款功能强大的FTP客户端软件,它允许用户连接到FTP...

    FTP - RFC959 中文版

    这篇博文提供了RFC959的中文翻译版本,对于理解FTP的工作原理和协议细节非常有帮助。 FTP协议基于TCP/IP协议栈,确保数据的可靠传输。它分为两个主要的部分:控制连接和数据连接。控制连接用于发送命令和接收响应,...

Global site tag (gtag.js) - Google Analytics