javaweb(二):JSP响应数据和浏览器解析数据的编码问题
来源:互联网 发布:c 网络编程视频教程 编辑:程序博客网 时间:2024/05/11 15:35
Servlet的doXXX方法中,以doGet(HttpServletRequest request,HttpServletResponse response);方法为例,其中的response参数具有getOutputStream()方法和getWriter()方法。
1、在Windows平台下,使用下面的语句
response.getOutputStream().write("abcd".getBytes());
或
response.getOutputStream().write("中文无乱码".getBytes());输出响应内容时,在客户端浏览器中显示,均不会产生乱码,原因是:
String类的getBytes()方法,不含参数时,默认使用特定平台(此处为Windows)上的编码方案(此处为GB2312,是GBK编码的子集),而浏览器也是默认使用特定平台上的解码方案,所以不会产生乱码。
2、在Windows平台下,使用下面的语句
response.getOutputStream().write("中文有乱码".getBytes("utf-8"));
输出响应内容时,在客户端浏览器中显示,会产生乱码,原因如1.解决这个问题的办法是添加下面的语句:
response.setHeader("Content-Type", "text/html;charset=utf-8");
3、在Windows平台下,使用下面的语句
response.getWriter().write("中文有乱码");
输出响应内容时,在客户端浏览器中显示,会产生乱码,原因是:
上述语句没有指定服务器端的编码方案,tomcat容器会默认使用ISO8859-1编码方案对writer()方法中的字符串进行编码,而浏览器端是特定平台的解码方案,所以会产生乱码,可能是多个?符号,因为ISO8859-1查不到编码方案时,会编码成?,而其他编码方案都是兼容ISO8859-1的,所以能够显示发过来的?。
解决的办法是分别设置服务器端的编码方案和浏览器端的解码方案:
//设置服务器端编码方案response.setCharacterEncoding("utf-8");//设置浏览器端解码方案response.setHeader("Content-Type", "text/html;charset=utf-8");
另外:
使用下面的语句
response.setHeader("Content-Type", "text/html;charset=utf-8");此时,因为设置浏览器解码方案了,服务器会自动使用对应的编码方案进行编码,也就是说,上面一句代码的作用,其实包含了3中的两句解决方案的作用。
最后,其实第1、2、3中所有的问题,可以用下面一句代码全部解决:
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
0 0
- javaweb(二):JSP响应数据和浏览器解析数据的编码问题
- 《JavaWeb---Servlet的简单例子》---响应浏览器的请求,向浏览器输出数据
- 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
- HTTP 浏览器发送给服务器的数据编码问题
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- ajax,提交数据,浏览器乱码,编码问题
- JSP和JavaScript数据交互的问题
- JSP对浏览器发送来的数据进行重新编码的两种方案
- JSP对浏览器发送来的数据进行重新编码的两种方案
- IE浏览器提交数据的编码方式
- Ajax 获取 responseText 形式的响应数据(二)
- Jmeter笔记二(响应数据有乱码的解决方案)
- Jsp中几个编码问题的解析
- JavaWeb的编码问题
- JSP数据交互(二)
- JSP数据交互(二)
- JSP数据交互(二)
- ios程序启动原理
- 笔试——2015BAT实习招聘
- ADO操作数据库
- C_C++命名规则
- 关于main函数中argc和argv的简单介绍
- javaweb(二):JSP响应数据和浏览器解析数据的编码问题
- ubuntu 用shell脚本实现将当前目录下所有目录中的某一类文件拷贝到同一目录下
- 安卓广播之理论篇
- 状态保存 Bundle savedInstanceState
- 彩色空间概论
- STL模板类--数据结构与算法
- VC透掉背景色
- 管中窥豹——从grabcut初探opencv纵向结构(一)
- MFC重绘函数