response.setCharacterEncoding("utf-8");
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

请问response.setCharacterEncoding有这个方法吗奇怪
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
5条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
小小农民 2015-12-28 23:30关注response.setCharacterEncoding("UTF-8"); 在Servlet2.3中是不行的,至少要2.4版本才可以,如果低于2.4版本,可以用如下办法:
response.setContentType("text/html;charset=UTF-8");
pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。
2、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。
3、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。
4、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。
response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。同时,浏览器也是根据这个参数来对其接收到的数据进行重新编码(或者称为解码)。所以在无论你在JSP中设置response.setCharacterEncoding ("UTF-8")或者response.setCharacterEncoding("GBK"),浏览器均能正确显示中文(前提是你发送到浏览器的数据编码是正确的,比如正确设置了pageEncoding参数等)。对于发送数据,服务器按照response.setCharacterEncoding—contentType—pageEncoding的优先顺序,对要发送的数据进行编码。
对于接收数据,要分三种情况。一种是浏览器直接用URL提交的数据,另外两种是用表单的GET和POST方式提交的数据。
对于表单中POST方式提交的数据,只要在接收数据的JSP中正确request.setCharacterEncoding参数,即将对客户端请求进行重新编码的编码设置成浏览器编码,就可以保证得到的参数编码正确。有写读者可能会问,那如何得到浏览器编码呢?上面我们提过了,在默认请情况下,浏览器编码就是你在响应该请求的JSP页面中response.setCharacterEncoding设置的值。所以对于POST表单提交的数据,在获得数据的JSP页面中request.setCharacterEncoding要和生成提交该表单的JSP页面的 response.setCharacterEncoding设置成相同的值。
对于URL提交的数据和表单中GET方式提交的数据,在接收数据的JSP中设置request.setCharacterEncoding参数是不行的,因为在Tomcat5.0中,默认情况下使用ISO- 8859-1对URL提交的数据和表单中GET方式提交的数据进行重新编码(解码),而不使用该参数对URL提交的数据和表单中GET方式提交的数据进行重新编码(解码)。要解决该问题,应该在Tomcat的配置文件的Connector标签中设置useBodyEncodingForURI或者 URIEncoding属性,其中useBodyEncodingForURI参数表示是否用request.setCharacterEncoding 参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false(Tomcat4.0中该参数默认为true); URIEncoding参数指定对所有GET方式请求(包括URL提交的数据和表单中GET方式提交的数据)进行统一的重新编码(解码)的编码。 URIEncoding和useBodyEncodingForURI区别是,URIEncoding是对所有GET方式的请求的数据进行统一的重新编码(解码),而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码(解码),不同的页面可以有不同的重新编码(解码)的编码。所以对于URL提交的数据和表单中GET方式提交的数据,可以修改 URIEncoding参数为浏览器编码或者修改useBodyEncodingForURI为true,并且在获得数据的JSP页面中 request.setCharacterEncoding参数设置成浏览器编码
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容

- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
- 2014-11-05 12:24wanglikui521的博客 前几天发现使用request.getPragrmber()方法获取中文参数出现乱码,后发现没有添加request.setCharacterEncoding("gb2312")语句,奇怪的是加入该语句后获取的参数仍然是乱码。经过本人数次实验得出request.set...
- 2018-10-20 03:59约德尔人的博客 一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式: ...request.setCharacterEncoding("UTF-8"); response.setContentType()的String参数及对应类型 <option value=...
- 2024-04-28 17:512301_82242988的博客 学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能...
- 2020-09-12 09:05xiaoQinVar的博客 response响应数据乱码原因以及解决方案 图解
- CaptainCats的博客 response的head儿中设置了content-length,导致写出的数据不相等时,这一句在header中设置了内容的大小Content-Length是10240个字节,是10k,temp.txt文件大小在5k左右,这就导致response以为没下完,已写出的数据...
- 2020-11-28 02:00吴师兄学算法的博客 点击上方“五分钟学算法”,选择“星标”公众号重磅干货,第一时间送达这世上为什么要有乱码这个东西...先给大家出个思考题吧,一个汉字占多少字节?是不是网上搜出的答案五花八门,那么读完本篇文...
- 2019-05-28 04:54玉标的博客 当从http 的response输出CSV文件的时候,设置为utf8的时候默认是不带 bom的,但是windows的Excel是使用bom来确认utf8编码的,所有需要把bom写到文件的开头。 微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 ...
- 2017-05-07 05:42weixin_30505225的博客 最近遇到了一个奇怪的事情,仅仅用out.print("<script type='text/javascript'>alert('download success');</script>"); 输出一个alert语句时就乱码,明明设置了字符的编码格式为UTF-8...
- 2019-11-27 10:41码农的进阶之路的博客 最近上线一个版本之后,发现微信支付回调那里老是报如下的异常 熟悉支付的同学应该知道,回调里处理完业务逻辑之后,要给微信/支付宝回调成功的响应 java.lang.IllegalStateException: getWriter() has already ...
- 2019-11-01 02:26九丶弟的博客 本文章会对getWriter() has already been called for this response异常在SpringBoot下出现的情况进行分析和解决。 如果你只是想看解决方案,请直接拖到文章最后。 问题分析 在把tomcat应用升级到SpringBoot后,部分...
- 没有解决我的问题, 去提问
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司