servlet请求编码与响应编码问题(编码不一致可能会导致乱码)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet请求编码与响应编码问题(编码不一致可能会导致乱码)相关的知识,希望对你有一定的参考价值。

html中的编码

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">这里不设置成中文编码无法写中文。

jsp中的编码

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  contentType="text/html; charset=UTF-8"是提供给浏览器的,pageEncoding="UTF-8"是服务器编译jsp时使用的,两者不一致可能会导致页面乱码,有时候可能不会乱码,最好保持一致。

servlet请求编码设置技术分享

  请求编码设置分两种,一种是get请求,在doGet方法获取请求参数的默认编码是ISO8859-1,无法获取中文,会出现乱码问题,用request.setCharacterEncoding("utf-8");设置编码不能解决,需要在server.xml的<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>添加URIEncoding="utf-8",这样可以解决url后传中文参数问题。

  另一种是post请求,在doPost方法中用request.setCharacterEncoding("utf-8");就能解决post方法的中文传参乱码问题。

servlet响应编码设置

  响应编码get与post请求一样,用response.setContentType("text/html;charset=UTF-8");就可解决。

以上是关于servlet请求编码与响应编码问题(编码不一致可能会导致乱码)的主要内容,如果未能解决你的问题,请参考以下文章

各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码

servlet中的字符编码过滤器的使用

Jmeter 请求或响应中文乱码

Jmeter 请求或响应中文乱码

Servlet之中文乱码问题入门版

servlet参数编码配置