服务器默认使用iso8859-1的编码格式将数据发送到客户端。对于响应体可以使用respones.setContentType("text/html;charset=uft-8")语句来设置服务器的编码格式,并告知客户端使用指定的编码格式解码。

但是对于响应头,似乎无法起效。这一点是我在写“excel下载“时碰到的,相关代码如下:

response.setContentType("octets/stream;charset=uft-8"); // 通知浏览器发送的数据的编码格式是utf-8且服务器使用utf-8编码response
String filename = "职员列表";
filename = new String(filename.getBytes("gb2312"),"ISO8859-1");//浏览器将头部按照gbk解码
response.addHeader("Content-Disposition","attachment;filename=" + filename + ".xlsx");

这段代码中头部携带的filename必须进行gbk编码后再用iso解码成字符串。

它的原理应该如下:

  服务器端会按iso解码头部字符串,而客户端收到字节流后确实按gbk去解码。

  所以字节流需要是gbk编码格式,而为了让服务器正确将字符串编码成字节流,

  所以服务器端需要用iso格式解码字节流。

  

转载于:https://www.cnblogs.com/sxf2086he/p/7891412.html

j2ee关于响应头的传输猜想相关推荐

  1. 【译】在ASP.Net和IIS中删除不必要的HTTP响应头

    引入 每次当浏览器向Web服务器发起一个请求的时,都会伴随着一些HTTP头的发送.而这些HTTP头是用于给Web服务器提供一些额外信息以便于处理请求.比如说吧.如果浏览器支持压缩功能,则浏览器会发送A ...

  2. 常用的HTTP请求头与响应头

    转载自:https://blog.csdn.net/qq_30553235/article/details/79282113 常用的HTTP请求头与响应头 HTTP消息头是指,在超文本传输协议( Hy ...

  3. 在ASP.Net和IIS中删除不必要的HTTP响应头

    引入 每次当浏览器向Web服务器发起一个请求的时,都会伴随着一些HTTP头的发送.而这些HTTP头是用于给Web服务器提供一些额外信息以便于处理请求.比如说吧.如果浏览器支持压缩功能,则浏览器会发送A ...

  4. HTTP响应头和请求头信息对照表(一篇全)

    HTTP Request Header 请求头 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Char ...

  5. 利用Access-Control-Allow-Origin响应头解决跨域请求

    标签:cors 跨域请求 ACAO 2015-11-28 18:53 12103人阅读 评论(0) 收藏 举报  分类: web前端(5)  J2EE服务器(2)  传统的跨域请求没有好的解决方案,无 ...

  6. HTTP_响应消息_响应头

    2. 响应头:     1. 格式:头名称: 值     2. 常见的响应头:         1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式         2. C ...

  7. 常用的HTTP响应头

    响应头 说明 示例 状态 Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时 Accept-Pa ...

  8. HTTP 响应的分块传输

    Transfer-Encoding 响应头用于告诉客户端服务器发送内容的编码格式. 其可选值有: chunked:数据分块发送.此时应缺省 Content-Length 响应头. compress:使 ...

  9. http状态码 以及请求响应头相关

    1xx消息[编辑] 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

最新文章

  1. pathview包绘制富集的kegg图
  2. 程序员头发失踪之谜 | 每日趣闻
  3. Android4.0源码Launcher启动流程分析【android源码Launcher系列一】
  4. 智慧城市“聪明”在哪儿
  5. 第四章4.1 4.2 快速傅里叶变换FFT-介绍
  6. 张新波 | 十面埋伏 - 论大数据风控技术体系的构建
  7. 最高科技——疯狂的前缀和
  8. C语言文件操作 fopen, fclose, mkdir(打开关闭文件,建文件夹,判断文件是否存在可读或可写)
  9. 宁波大学2020计算机技术复试线,宁波大学2020年硕士研究生复试分数线
  10. [ BZOJ 3879 ] SvT
  11. 模块化加载_webpack模块化原理-异步加载模块
  12. 10分钟搞定webpack打包
  13. 华为eSight网络监控平台安装-最新版本
  14. Promise初步详解(resolve,reject,catch)
  15. apicloud访问php,支付宝 app应用 受权 php + APICloud
  16. Make sure that `gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'` succeeds before...
  17. vue项目根据不同手机尺寸设置引入不同图片的功能
  18. C++中的delegate
  19. 基于ARM Cortex-M3微控制器(STM32系列)基础知识(三)——ARM指令集
  20. linux gcc忽略警告,GCC 警告提示的用法

热门文章

  1. 当领导,核心是“抓住2点、做好5条”!做到了,员工根本不用管
  2. Transformer靠什么“基因“,得以闯入CV界秒杀CNN?
  3. 工业4.0,人工智能狂潮正在席卷制造业 | 500强系列报告
  4. 分组卷积新进展,全自动学习的分组有哪些经典模型?
  5. CIKM投稿数量1700篇,图神经网络成热门方向,最佳论文纷纷进行图研究
  6. 我是AI产品经理,就必须掌握AI技术吗?
  7. 深度强化元学习教程---元学习概述
  8. EMW 性能优化二之---并发配置
  9. (节点分类)四大图数据集AIFB,MUTAG,BGS,AM数据集获取
  10. Gartner:解开关于人工智能的六个迷思