当前位置: 首页 > news >正文

文件下载中文乱码问题

解决思路:
1.获取客户端使用的浏览器版本信息不同
2.根据不同的版本信息,响应不同的数据

代码:

DownloadUtils
	 public static String getFileName(String agent,String filename) throws UnsupportedEncodingException {
    if (agent.contains("MSIE")) {
        // IE浏览器
        filename = URLEncoder.encode(filename, "utf-8");
        filename = filename.replace("+", " ");
    } else if (agent.contains("Firefox")) {
        // 火狐浏览器
        BASE64Encoder base64Encoder = new BASE64Encoder();
        filename = "=?utf-8?B?"
                + base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
    } else {
        // 其它浏览器
        filename = URLEncoder.encode(filename, "utf-8");
    }
    return filename;
}

相关文章:

  • 转发和重定向的区别
  • ServletContext对象
  • response对象
  • springboot常用配置
  • com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large
  • mybatis的常用语句操作demo
  • Java常用设计模式 工厂模式和观察者模式
  • SQL中的DQL、DML、DDL、DCL
  • ssm框架:Error creating bean with name ‘mvcContentNegotiationManager‘:
  • Java的9种基本数据类型以及封装类
  • 什么是SVN
  • Svn与git的区别 Svn与FTP的最大区别
  • SVN内容冲突
  • MySQL命令安装
  • IDEA自己常用的快捷键
  • [NodeJS] 关于Buffer
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • PV统计优化设计
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 基于web的全景—— Pannellum小试
  • 技术:超级实用的电脑小技巧
  • 如何用vue打造一个移动端音乐播放器
  • 使用agvtool更改app version/build
  • 数组大概知多少
  • 正则与JS中的正则
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​渐进式Web应用PWA的未来
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #、%和$符号在OGNL表达式中经常出现
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $.ajax()方法详解
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (五)c52学习之旅-静态数码管
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .gitattributes 文件
  • .gitignore文件_Git:.gitignore
  • .net 发送邮件
  • .net与java建立WebService再互相调用
  • .so文件(linux系统)
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [AIGC codze] Kafka 的 rebalance 机制
  • [AX]AX2012 SSRS报表Drill through action
  • [HackMyVM]靶场Crossbow
  • [Head First设计模式]策略模式
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [LeetCode] Minimum Path Sum
  • [LeetCode]-Integer to Roman 阿拉伯数字转罗马数字
  • [luoguP3159] [CQOI2012]交换棋子(最小费用最大流)