响应编码、请求编码与URL编码
2017-07-30 20:59
232 查看
编码
常见字符编码:iso-8859-1(不支持中文)、gbk(系统默认编码,中国的国标码)、utf-8(万国码)响应编码
当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso 一般浏览器会把数据当成gbk reponse.setCharacterEncoding("utf-8"):设置响应编码 response.setHeader("Content-Type","text/html;charset=utf-8");:告诉浏览器用什么编码,还会设置setCharacterEncoding (简洁方法response.setContentType("text/html;charset=utf-8");(写在getWriter()之前))
请求编码
客户端在页面中提交表单或点击超链接。在发送请求时,服务器发送该页面的编码是什么,客户端就用什么编码发送请求。但服务端默认使用ISO-8859-1来解码 POST请求: 只需在获取参数值前调用request的setCharacterEncoding("utf-8"),之后便可获取参数String name = request.getParameter("username"); get请求: URI默认使用IOS-8859-1编码 法一:可以设置Tomcat文件中conf/server.xml中<Connector>标签内设置URI编码,可解决乱码问题(但是不建议使用)
法二:获取参数String name = request.getParameter("username"); 反编码 byte[] bytes = name.getBytes("ISO-8859-1"); name = new String(bytes,"utf-8"); (Tomcat8之后版本get直接使用UTF-8编码,不需要转换,但post仍需转换)
URL编码
表单的类型:Content-Type:application/x-www-form-urlencoded,这种方式可以把非英文在客户端和服务器之间传递时转换成网络适合的方式 它不是字符编码 它是用来在客户端与服务器之间传递参数的一种方式 GET请求中的中文没有URL编码,可能会出现丢失字节,所以需要把链接中的中文参数使用url编码 POST请求(使用表单)使用URL编码,Tomcat会自动解码 URL编码String username = URLEncoder.encode(username,"utf-8"); URL解码String username = URLDecoder.decode(username,"utf-8");
相关文章推荐
- 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码
- 请求编码、响应编码及URL编码的原理
- IIS7.5中对所有请求响应的JSON数据进行GZIP编码
- 请求与响应编码及jsp基本原理
- 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
- 全站编码问题 请求和响应编码的处理
- 【Java EE】get和post请求|响应的编码过程
- IIS7.5中对所有请求响应的JSON数据进行GZIP编码
- Java EE 中的请求和响应编码问题 - 相关API汇总
- 请求和响应编码处理
- 通过过滤器解决post方式请求参数编码问题和响应编码问题
- Http响应和请求的编码问题
- 请求编码与响应编码
- 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
- JSP页面,响应和请求编码全解
- JavaWeb 修炼之路(六)请求和响应中的编码
- JavaWeb——响应编码与请求编码
- HttpServletResponse响应头与HttpServletRequest请求头及编码问题
- JAVA请求与响应编码详解
- Web请求响应编码问题详解