Servlet中文乱码问题

本文深入探讨了在Servlet中遇到的中文乱码问题,并详细解释了req.setCharacterEncoding、resp.setCharacterEncoding及resp.setContentType三者的作用与缺失时的影响,帮助读者理解编码设置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet中文乱码问题

使用Servlet的时候,遇到了乱码问题,加入了以下代码后得到解决,但是少了任何一条都仍然是乱码,因此探寻一下究竟是哪里出了问题。

req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset:utf-8");

提交字符串均为:中文ABC

req.setCharacterEncoding("utf-8"),缺失时显示内容为:中文ABC。
代码本身是设置服务器端收到请求的解码格式,所以不设置的话会按照默认的"ISO-8859-1"进行解码,而编码方式却是"utf-8",所以会出现错误。

resp.setCharacterEncoding("utf-8");,缺失时显示内容为:??ABC。
这一行代码是设置服务端响应请求的编码格式,所以错误产生原因则是由于服务器按照默认的"ISO-8859-1"进行编码,客户端则用"utf-8"解码。

resp.setContentType("text/html;charset:utf-8");,缺失时显示内容为:涓枃ABC。
这一行代码是设置响应HTML文件的编码格式,错误产生原因是由于Chrome按照本地的默认编码“GBK”进行解码,使用了一个更改浏览器编码的插件将编码改成"utf-8"后得到解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值