Java在编写文件下载的代码中如何避免文件名乱码情况

  做项目的时候经常要遇到编写文件下载的模块,如果遇到文件名就是英数字的情况,那么就很简单,不会出现任何乱码。但是如果出现了类似中文或者别的其他文字的时候,文件名就会出现乱码。那么如何去避免呢,就要在文件下载的代码之前对文件名做一些处理转换。

 

在IE中,我们要用到URLEncoder类来进行转换,代码如下

 

使用这招的话,发现在Firefox浏览器中不好使,在Firefox中应该用下面的代码

 

那么所以我们如果要写一个通用的代码,就要进行浏览器识别后再转换。

 

 

其实代码并不复杂,问题也就轻松解决了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java使用FTP下载Word文件,需要注意以下几点,以保证文件名和文件内容不会出现乱码: 1. 指定FTP文件传输格式:在下载文件之前,需要设置FTP的传输格式为二进制传输格式,以保证文件内容不会出现乱码。可以使用FTPClient的setFileType方法设置传输格式为二进制传输格式: ``` FTPClient ftp = new FTPClient(); ftp.connect(server, port); ftp.login(user, password); ftp.setFileType(FTP.BINARY_FILE_TYPE); ``` 2. 指定文件名编码格式:在下载文件之前,需要指定要下载的文件名编码格式,以保证文件名不会出现乱码。可以使用FTPClient的setControlEncoding方法指定文件名编码格式: ``` FTPClient ftp = new FTPClient(); ftp.connect(server, port); ftp.login(user, password); ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.setControlEncoding("UTF-8"); ``` 3. 指定本地文件名编码格式:在将文件保存到本地磁盘时,需要指定本地文件名编码格式,以保证文件名不会出现乱码。可以使用Java的URLDecoder解码方法对文件名进行解码: ``` InputStream in = ftp.retrieveFileStream(remoteFilePath); OutputStream out = new FileOutputStream(URLDecoder.decode(localFilePath, "UTF-8")); ``` 4. 使用合适的文本编码格式:如果下载的文件是Word文档,需要使用合适的文本编码格式来读取文件内容,以保证文件内容不会出现乱码。可以使用Java的FileInputStream和InputStreamReader类来读取文件内容,并指定合适的文本编码格式: ``` FileInputStream fis = new FileInputStream(localFilePath); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { // 处理文件内容 } ``` 综上所述,可以使用上述方法来实现在Java下载FTP上的Word文件,同时保证文件名和文件内容不会出现乱码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值