JSP中请求响应乱码几种常见的

请求乱码
url地址请求乱码

get通过地址栏请求会出现乱码,大家可能知道和req.setCharacterEncoding()有关系,抱歉和地址栏乱码没有一毛钱关系,不能说是和get方法没有关系,因为get方法有地址栏请求和请求体请求,req.setCharacterEncoding()这个是设置请求体的,

解决方案

1.打开你下载的Tomat在里面找到conf\server.xml文件打开加入以下代码URIEncoding或者useBodyEncodingForURI="true"

2.如果不行就用就用下面的post的第二种方式进行解码

请求体key-value形式中文乱码 
post请求

第一种方式只要再getParamter前面加上req.setCharaterEncoding("utf-8");

req.setCharacterEncoding("UTF-8");
        String user = req.getParameter("user");
        String pwd = req.getParameter("pwd");
        System.out.println(user);
        System.out.println(pwd);

2、这种方式是一个一个解码,如果你有多个中文字段就需要一个个解码

String user = req.getParameter("user");
        String s = new String(user.getBytes("ISO8859-1"), "UTF-8");
        System.out.println(s);
get请求
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //IO解析
        System.out.println("这是get方法");
        BufferedReader br = new BufferedReader(new InputStreamReader(req.getInputStream()));
        System.out.println(URLDecoder.decode(br.readLine(),"utf-8"));
        br.close();
    }

我们使用java.net.URLDecoder对传递的URL编码字符串进行解码,并将解码后的字符串输出到控制台。这样可以确保中文字符正确显示。请注意,这种解码适用于对URL编码字符串进行解码,如果请求正文中的数据并不是URL编码的字符串,那么还需要根据具体情况使用适当的解码方式。

响应乱码

向页面输出中文乱码

servletResponse.setContentType("text/html;charset=utf-8");

向页面输出json串中文乱码

resp.setContentType("application/json;charset=utf-8");

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值