iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >FtpClient在创建中文目录文件名中的中文显示乱码如何解决
  • 579
分享到

FtpClient在创建中文目录文件名中的中文显示乱码如何解决

2023-06-13 02:06:24 579人浏览 八月长安
摘要

本篇内容介绍了“FtpClient在创建中文目录文件名中的中文显示乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  最近在做文件

本篇内容介绍了“FtpClient在创建中文目录文件名中的中文显示乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  最近在做文件服务器的相关东西,在原有的磁盘存储的基础上,增加了Ftp的存储方式,客户端选用的是Apache的FtpClient。  今天在测试的时候,发现中文的路径后者文件名不支持,查阅了相关资料后终于找到了解决的方法。

  使用类:

  org.apache.commons.net.ftp.FTPClient

  问题描述:

  创建中文目录、上传中文文件名时,目录名及文件名中的中文显示乱码解决方法:

  在网上Google了一些资料, FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码。

  所以网上很多人的解决方法为:

  将中文的目录或文件名转为iso-8859-1编码的字符。参考代码:

  String name="目录名或文件名";

  name=new String(name.getBytes("GBK"),"iso-8859-1");很多人改为上述操作后,发现上传后中文不再乱码了,就以为解决了问题还有人处理方法为:

  ftpClient.setControlEncoding("GBK");

  FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);conf.setServerLanguageCode("zh");

  上述的处理方法,我都试过,发现在我自己搭建的FTP服务器上,上传的文件中文是正常的,不是乱码,我当时以为中文问题就解决了,但是测试部的同事在将文件上传到他们搭建的FTP服务器上时,文件中文路径仍然是乱码,所以上述的解决方法是错误的。

  上面的方法之所以错误的原因是因为是没有考虑ftp服务器的编码格式。我搭建的Ftp服务器(windows2003 server)支持GBK编码方式,所以上述的解决方法可以,但是测试部的同事搭建的Ftp服务器(serv-u)是支持UTF-8格式的,所以此时在客户端的编码方式是GBK的,而搭设的ftp服务器中的设置就已经是utf-8的编码,所以肯定还是会出现乱码的问题。

  那么正确的解决方法时是什么呢,我们可以仿照FlashFXP、FileZilla等ftp 客户端连接工具,看看他们是如何实现的,下面的两张图就是FileZilla的配置信息和连接时的命令信息。

FtpClient在创建中文目录文件名中的中文显示乱码如何解决

  图1:FileZilla配置信息

FtpClient在创建中文目录文件名中的中文显示乱码如何解决

  图2:FileZilla连接时信息

  从图2中我们可以看到原来它向服务器发送了OPTS UTF8 ON命令,来开启服务器对UTF-8的支持。所以我们也可以仿照FileZilla那样向服务器发送该命令。如果服务器支持UTF-8我们就用UTTF-8,否则我们就用本地编码(GBK)来处理中文文件名。

  下面是Java代码:

  

  private static String LOCAL_CHARSET = "GBK";// FTP协议里面,规定文件名编码为iso-8859-1private static String SERVER_CHARSET = "ISO-8859-1";private void connectFtpServer() {

  if (ftpClient == null) {

  ftpClient = new FTPClient();

  }

  if (ftpClient.isConnected()) {

  return;

  }

  String host = getConfigValue(ADDRESS);

  int port = Integer.valueOf(getConfigValue(PORT));String user = getConfigValue(USER);

  String passWord = getConfigValue(PASSWORD);try {

  ftpClient.connect(host, port);

  if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {if (ftpClient.login(user, password)) {

  if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {// 开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码,否则就使用本地编码(GBK).

  LOCAL_CHARSET = "UTF-8";

  }

  ftpClient.setControlEncoding(LOCAL_CHARSET);ftpClient.enterLocalPassiveMode();// 设置被动模式ftpClient.setFileType(getTransfORModule());// 设置传输的模式return;

  } else {

  throw new FileStorageException(

  "Connet ftpServer error! Please check user or password");}

  }

  } catch (IOException e) {

  disConnectServer();

  throw new FileStorageException(

  "Connet ftpServer error! Please check the Configuration");}

  }

  上传文件时,文件名称需要做编码转换

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

“FtpClient在创建中文目录文件名中的中文显示乱码如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: FtpClient在创建中文目录文件名中的中文显示乱码如何解决

本文链接: https://www.lsjlt.com/news/264628.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • FtpClient在创建中文目录文件名中的中文显示乱码如何解决
    本篇内容介绍了“FtpClient在创建中文目录文件名中的中文显示乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  最近在做文件...
    99+
    2023-06-13
  • 怎么解决php目录文件名中文乱码
    这篇文章主要介绍“怎么解决php目录文件名中文乱码”,在日常操作中,相信很多人在怎么解决php目录文件名中文乱码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决php目录文件名中文乱码”的疑惑有所帮助!...
    99+
    2023-06-25
  • java创建目录中文乱码怎么解决
    当在Java中创建目录时遇到中文乱码问题,可以尝试以下解决方案:1. 设置文件编码:在程序开头添加如下代码,将文件编码设置为UTF-...
    99+
    2023-08-11
    java
  • java文件在eclipse中显示中文乱码解决方法
    eclipse项目代码显示中文乱码解决方法有4种:设置工作空间的编码方式进行点击菜单中的windows菜单选择下拉菜单中进行选择为preference选项。进入general的选项,选中workspace的选项,点击Apply,点击OK退出...
    99+
    2016-08-27
    java 乱码
  • php文件显示中文乱码怎么解决
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑一:HTML和PHP混合的页面解决方案如何是HTML和PHP混编,除了按照第一个方法所说的操作之外,还需要在PHP文件的最上面加入这句代码:<php header(...
    99+
    2019-12-01
    php 乱码
  • Putty登录Ubuntu中文显示乱码如何解决
    本篇内容主要讲解“Putty登录Ubuntu中文显示乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Putty登录Ubuntu中文显示乱码如何解决”吧!Ubuntu是一个以桌面应用为主...
    99+
    2023-06-13
  • 怎样在linux下显示中文目录和文件名
    这期内容当中小编将会给大家带来有关怎样在linux下显示中文目录和文件名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。选择一个一劳永逸的方法,就是修改/etc/下的fstab文件,我的fstab内容如下:...
    99+
    2023-06-05
  • windows10中文显示乱码如何解决
    在Windows 10中文显示乱码的问题通常是由于系统编码设置不正确或缺少相关字体文件所致。以下是一些可能的解决方法:1. 更改系统...
    99+
    2023-10-09
    windows10
  • 如何解决php文件中文名乱码问题
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。如何解决php文件中文名乱码问题php上传文件中文文件名乱码的解决方法文件上传是我们在处理表单提交时候最常用的功能之一,今天写了一个小小的demo,如下:先看结构:ht...
    99+
    2019-04-10
    php 乱码
  • 在linux系统下显示中文目录和文件名的方法
    本篇内容主要讲解“在linux系统下显示中文目录和文件名的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在linux系统下显示中文目录和文件名的方法”吧!选择一个一劳永逸的方法,就是修改/e...
    99+
    2023-06-13
  • php程序中文显示乱码如何解决
    本文小编为大家详细介绍“php程序中文显示乱码如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php程序中文显示乱码如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、PHP代码解析在PHP程序中,...
    99+
    2023-07-05
  • response文件流输出文件名中文不显示的解决
    目录文件流输出文件名中文不显示使用如下方法没有解决解决方法response下载时中文文件名乱码文件流输出文件名中文不显示 response返回文件流 用response.setHea...
    99+
    2022-11-13
  • javascript alert函数如何解决显示中文乱码
    这篇文章主要介绍“javascript alert函数如何解决显示中文乱码”,在日常操作中,相信很多人在javascript alert函数如何解决显示中文乱码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”j...
    99+
    2023-06-14
  • win7系统cmd显示中文乱码如何解决
    本篇内容主要讲解“win7系统cmd显示中文乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7系统cmd显示中文乱码如何解决”吧!解决方法:按win+r打开进入运行窗口,输入“c...
    99+
    2023-06-28
  • 基于HttpClient上传文件中文名乱码的解决
    现象 使用HttpClient工具上传文件时,如果文件名是中文,文件名会乱码 文件名乱码的代码: private HttpEntity buildEntity(Long scen...
    99+
    2022-11-12
  • php标题显示中文乱码问题如何解决
    本篇内容介绍了“php标题显示中文乱码问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php标题显示中文乱码的解决办法:1、在HT...
    99+
    2023-06-20
  • java中文件下载时文件名乱码的解决方法
    java下载文件时文件名出现乱码的解决办法: String userAgent = request.getHeader("User-Agent"); String formFileName = file.getFileNa...
    99+
    2018-09-25
    java 乱码
  • Java程序中文显示乱码的解决方法
    Java程序中文显示乱码的解决方法有时我们使用编辑器写java代码,默认会保存为utf-8格式,当代码中有中文,就会出现下面的乱码情况:解决方法很简单,只需要更改一下文件的编码格式即可。具体的实现步骤如下:1、使用记事本打开源码文件,点击文...
    99+
    2022-03-09
    java入门 java 乱码
  • HTML显示中文乱码问题的解决方法
    在使用HTML编写网页或者文章时,很多人都会遇到显示中文乱码的问题。这种问题主要是由于编码格式不对或者字库缺失导致的。如果没有解决这个问题,就会导致网页在不同的浏览器上显示的效果不同,影响网站的美观度和用户的体验。这篇文章将介绍HTML显示...
    99+
    2023-05-14
  • 解决xshell与vim显示中文乱码的问题
    打开一个用utf8编码的中文文件,在vim中,执行:set encoding=utf-8 termencoding=gbk fileencoding=utf-8后可正常显示中文咯。解释:encoding是设置档案的当前编码termencod...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作