java下载文件时的文件名乱码处理
在不同浏览器下需要有不同的处理,否则还是会出现文件名为乱码:
//判断浏览器
}
,ie是一样的,火狐不同些,谷歌兼容两种
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("Mozilla")){//firefox
response.setHeader("Content-Disposition", "attachment;filename=\""
+ new String(file.getName().getBytes("UTF-8"),"iso-8859-1")
+ "\"");
}else{//IE,其他MSIE,
// 设置文件头,文件名称或编码格式
response.setHeader("Content-Disposition", "attachment;filename=\""
+ java.net.URLEncoder.encode(file.getName(), "UTF-8")
+ "\"");
}
分享到:
相关推荐
MyBatis `<if>` 需要在Java代码或XML映射文件中实现逻辑判断,这种做法加深了SQL与应用程序代码的耦合度。而CASE WHEN直接嵌入SQL内,实现了逻辑判断与数据访问层的解耦,提升了代码的模块化水平,便于维护和跨团队...
if(p==NULL){ return error; } } return success; } node* List::get_ptr(int m){ node*p=head; int j=0; while(p!=NULL&&j){ j++; p=p->next; } return p; } yaya List::inset_node(int x,int y...
貌似以前也看过null==undefined,null!==undefined,但也一直没有在意。 近日看过去别人的一程序源码,到处都有一些如if(x!=undefined&&x!=null&&x!=””)之类的判断,突然觉得写的很啰嗦,俺一般都直接if(x){}因为...
if (location == null || mMapView == null) return; MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) //此处设置开发者获取到的方向信息,顺时针0-...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
if (head == NULL || id < head->id) { newNode->next = head; head->prev = newNode; head = newNode; } else { Node* temp = head; while (temp->next != NULL && temp->next->id ) temp = temp->next; ...
### 1. 初始化链表 链表的初始化通常涉及创建一个空链表,即头节点为空。在C++中,可以这样实现: ```cpp ListNode *head = NULL; ``` ### 2. 插入节点 插入节点是链表操作中的核心部分。有多种插入方式,如在...
## 1. 单链表 单链表由一系列节点组成,每个节点包含两部分:数据域(存储实际信息)和指针域(指向下一个节点的地址)。在C语言中,我们可以定义一个结构体来表示链表节点: ```c typedef struct Node { int ...
if (list1 == NULL) return list2; if (list2 == NULL) return list1; if (list1->data < list2->data) { list1->next = mergeSortedLists(list1->next, list2); list1->next->prev = list1; list1->prev = ...
link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css1"> <link rel="stylesheet" href="/js/vue/index.css"> <div id="app"> <el-button @click="visible = true">...
在C/C++中,我们可以通过定义一个头节点来管理链表,初始时头节点的`next`指针为`nullptr`或`NULL`。创建新节点并插入到链表的末尾,可以使用如下的函数: ```cpp ListNode* createNode(int data) { ListNode* new...
this.construct=function(arg1,arg2){var argpercentage=null;var argconfig=null;if(arg1!=null){if(!isNaN(arg1)){argpercentage=arg1;if(arg2!=null){argconfig=arg2;}}else{argconfig=arg1;}} return this.each...
if (prev == NULL) { // 如果删除的是头节点 *head = temp->next; } else { prev->next = temp->next; } free(temp); } } ``` **修改元素**:同样需要遍历链表找到目标节点,并更新其数据域。 ```c void ...
`jdk-8u101-linux-x64.tar.gz` 是Oracle公司发布的JDK 8更新101的Linux 64位版本的压缩包文件。这个文件的命名遵循了一种标准格式:`jdk-版本号-os平台-架构.tar.gz`,其中“版本号”代表JDK的发布版本,“os平台”...
链表是一种基础且重要的数据结构,它在计算机科学中扮演着关键角色,特别是在处理动态数据集合时。在C语言中,链表不像是数组那样在内存中连续存储,而是通过节点之间的指针链接来实现。本资料包"链表-使用C语言实现...
= "undefined" && objObject.IPEnabled == true) { if(objObject.MACAddress != null && objObject.MACAddress != "undefined") MACAddr = objObject.MACAddress; if(objObject.IPEnabled && objObject.IPAddress(0)...
1. **下载**:首先,你需要从Oracle官方网站或可靠的第三方源下载对应的压缩包。 2. **解压**:使用`tar -zxvf jdk8-jdk-8u121-linux-x64.tar.gz`命令解压文件,这将创建一个名为`jdk1.8.0_121`的目录。 3. **配置...
cookieVal = cookieVal.substring(0, cookieVal.indexOf(";")); sessionId = sessionId + cookieVal + ";"; } } if (sessionId != null) { String[] cookiearr = sessionId.split(";"); for (int i = 0; i ...
在C++编程中,链表是一种非常重要的数据结构,它在很多场合下有着广泛的应用,尤其是在处理动态数据集合时。链表与数组不同,数组是连续存储的数据结构,而链表则是通过节点间的指针连接起来的一系列元素。在本题的...
链表是一种基础且重要的数据结构,它在计算机科学中扮演着关键角色,特别是在处理动态数据集合时。与数组不同,链表的元素不需要在内存中连续存储,这使得它们在插入和删除操作上具有较高的效率。下面我们将深入探讨...