为了账号安全,请及时绑定邮箱和手机立即绑定

servlet/jsp 中文乱码

servlet/jsp 中文乱码

守着一只汪 2018-12-07 04:06:07
写了个简单的从jsp提交用户名密码到servlet的程序。通过servlet直接在页面输出用户名和密码。不料显示中文名是乱码。该程序不涉及数据库。字符编码我默认都是UTF-8。详细情况见截图。
查看完整描述

4 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

问题在于custname,也就是你发送请求的数据编码和接收的不一致。看看你请求页面的编码是什么,gbk或者utf-8,如何后台

request.setCharacterEncoding("UTF-8")或者request.setCharacterEncoding("GBK").
查看完整回答
反对 回复 2018-12-16
?
不负相思意

TA贡献1777条经验 获得超10个赞

在response.getWriter()之前加上这两行代码试试:

response.setCharacterEncoding("utf-8");   
response.setContentType("text/html; charset=utf-8");
查看完整回答
反对 回复 2018-12-16
?
慕沐林林

TA贡献2016条经验 获得超9个赞

还是有乱码。

查看完整回答
反对 回复 2018-12-16
?
翻阅古今

TA贡献1780条经验 获得超5个赞

在获取请求参数值之前加上:

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");  

或者写一个拦截器,在web.xml配置上就好了

public class EncodingFilter implements Filter {
    
    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain filterChain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        filterChain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        
    }

 

 

查看完整回答
反对 回复 2018-12-16
  • 4 回答
  • 0 关注
  • 452 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号