Servlet中乱码解决

编程入门 行业动态 更新时间:2024-10-10 05:26:03

Servlet中<a href=https://www.elefans.com/category/jswz/34/1768993.html style=乱码解决"/>

Servlet中乱码解决

总决式:解决乱码.不写中文

创建个Javaweb项目,演示并解决各种乱码

直接next

pom.xml里自动引入了servletapi

目录结构

一般创建好项目先设置下maven与Encoding

建个Servlet测试

启动并访问  无论控制台输出用GBK还是UTF8  都是乱码

此时需要修改Tomcat/conf/logging.properties文件

然后将console输出改成GBK

注意清下缓存   这样控制台输出  和tomcat日志都正常了

关于Get请求中文乱码问题,Tomcat10之后,request请求体当中的字符集默认就是UTF-8,不需要设置字符集,不会出现乱码问题。Tomcat9前(包括9在内),如果前端请求体提交的是中文,后端获取之后出现乱码,怎么解决这个乱码?执行以下代码。

//这段代码要放在获取请求参数前面
关于Get请求中文乱码方案1  request.setCharacterEncoding("UTF-8");

如果Get请求中文还是乱码  修改conf/server.xml配置文件

关于Get请求中文乱码方案2 <Connector 加上URIEncoding="UTF-8" />
 注意:从Tomcat8之后,URIEncoding的默认值就是UTF-8,所以GET请求也没有乱码问题了。

关于Post请求中文参数乱码 

request.setCharacterEncoding("UTF-8"); 可以解决

响应的中文乱码问题,在Tomcat9之前(包括9),响应中文也是有乱码的,怎么解决这个响应的乱码?
response.setContentType("text/html;charset=UTF-8");

此种方式不一定有效(原因在于,你虽然用utf-8编码,但是浏览器不一定用utf-8解决,)

解决方案1 response.setCharacterEncoding("utf-8");

解决方案2

response.setHeader("Content-type","text/html;charset=utf-8")设置响应头,告诉浏览器也是用utf8

解决方案3  response.setContentType("text/html;charset=utf-8")  同上

需要注意以上三种设置,使用时候需要设置在response获取字节流或者字符流之前,否则无效

更多推荐

Servlet中乱码解决

本文发布于:2023-12-04 17:33:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661698.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   Servlet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!