使用老的user-agent判断"MSIE"的方法,l判断IE11浏览器是无法识别,导致下载excel文件乱码

原先的代码:

          // 清空responseresponse.reset();String userAgent = request.getHeader("User-Agent");String file_name = ""+ group.getName() + "("+ group.getItemId() +")";if (StringUtils.contains(userAgent, "MSIE") ) {//IE浏览器file_name = URLEncoder.encode(file_name,"UTF8");} else if (StringUtils.contains(userAgent, "Mozilla")) {//google,FireFoxfile_name = new String(file_name.getBytes(), "ISO8859-1");} else {file_name = URLEncoder.encode(file_name,"UTF8");//其他浏览器}

各个浏览器的use-agent:

IE11:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

IE10:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

Firefox:Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0

Chrome:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36

原因:

之前多数使用MSIE来判断是否IE浏览器的代码都无法工作,可以改用Trident字符串来判断。Trident标识是在IE9中引入的。

          // 清空responseresponse.reset();String userAgent = request.getHeader("User-Agent");String file_name = ""+ group.getName() + "("+ group.getItemId() +")";/*** 在IE9以后,微软使用了Trident来作为IE浏览器的标志,为了兼容老的版本,此处还要兼容IE6、7、8的版本*/if (StringUtils.contains(userAgent, "MSIE") || StringUtils.contains(userAgent, "Trident")) {//IE浏览器file_name = URLEncoder.encode(file_name,"UTF8");} else if (StringUtils.contains(userAgent, "Mozilla")) {//google,FireFoxfile_name = new String(file_name.getBytes(), "ISO8859-1");} else {file_name = URLEncoder.encode(file_name,"UTF8");//其他浏览器}

这样就解决了

java 后台判断浏览器类型,IE11下载乱码解决方案相关推荐

  1. java判断浏览器类型_判断浏览器类型

    一.判断是否为IE 以前判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userA ...

  2. Java判断浏览器类型

    /** * 判断浏览器类型是否是IE,是则返回true,不是返回false * ServletActionContext是struts2上下文对象 * @author 李英夫(2010-6-20 上午 ...

  3. php如何判断浏览器类型,php判断当前浏览器类型

    本文分享一款判断浏览器类型的方法,可用于统计你的用户使用浏览器比例. 难易:初级 下载资源 下载积分: 20 积分 判断浏览器类型方法: function userBrowser() { $user_ ...

  4. JS判断浏览器类型及版本

    判断浏览器类型及版本 function getBroswer(){var os = navigator.platform; var userAgent = navigator.userAgent; v ...

  5. 前端如何判断浏览器类型及版本?

    前言 在网站前端开发中,浏览器兼容性问题让我们手忙脚乱,浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本. JavaScript是前端开发的主要语言 ...

  6. JavaScript判断浏览器类型及版本

    JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...

  7. JS判断浏览器类型的方法【转】

    在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子.浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本 ...

  8. 【javascript】—— JS判断浏览器类型、操作系统

    navigator.userAgent : userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值. navigator.platform : platform ...

  9. 根据屏幕分辨率获取css,根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码...

    既判断分辨率,也判断浏览器 重新完善代码,使之成为判断浏览器类型屏幕分辨率自动调用不同CSS的代码. 解释: var IE1024=""; var IE800="&quo ...

最新文章

  1. 五句话搞定JavaScript作用域【转】
  2. could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 错误的解决办法
  3. Shell until循环
  4. python函数对变量的作用域_python函数变量作用域如何理解使用?
  5. 前端知识点整理(三)不定时更新~
  6. 草稿-xpath了解-python 操作xpath小例子
  7. 明晰 | Java序列化与反序列化
  8. ❤️测试人的曲折职场路:从毕业的5K到20K,四年我换了3份工作…
  9. Kafka容错性测试
  10. oracle中db_create_file_dest参数
  11. iPhone4S、iPod5代、iPad2、iPad3、mini1代完美绕激活工具Sliver发布全新6.0版,支持工厂激活FMI OFF
  12. 开源物业管理系统的对比
  13. 庖丁解牛linux内核,庖丁解牛Linux网络核心
  14. OPC教程一:什么是OPC
  15. 关于VMware Desktone中的Slony和数据库
  16. 数据分析实例——美国加州人口分析[isnull().any()/.unique()/merge/set_index/df.query/sort_values]
  17. 嵌入式工程师修炼:自信 坚强 积极 勤快
  18. 华为智慧屏 鸿蒙,精挑细选的高品质大屏,新一代华为智慧屏V系列不要错过
  19. 一种解决Ubuntu无法使用Wify的方法
  20. 常用 Excel 公式列表

热门文章

  1. 创业者如何克服困难,控制焦虑情绪,走向成功
  2. dzzoffice应用如何安装
  3. 对比Python,看看Excel如何3步给证件照换底色?
  4. idea配置Camunda Modeler
  5. 切比雪夫不等式证明及应用
  6. 使用Spreadsheet操作Excel
  7. ipad键盘符号少怎么办?
  8. 从零开始安装ubuntu22.04并搭建远程深度学习环境
  9. 水滴筹创始人:除中国以外不推行996;字节跳动2021年净亏损6041亿!
  10. ax88772c linux驱动下载,ax88772c以太网驱动问题