美文网首页
Post和Get请求乱码问题

Post和Get请求乱码问题

作者: 暗香抚动 | 来源:发表于2016-09-01 20:40 被阅读0次

1.Post请求

表单提交用的大多是post方法,如果接收到的数据出现乱码,在其提交前加上编码格式,即request.setCharacterEncoding("utf-8")方法;

2.get请求

该方式请求是将数据提交到地址栏上,此时如设置上述方法是不起作用的,原因就在于服务器默认的编码格式为ISO8859-1,如解决乱码问题,可用方法一:设置服务器编码格式为UTF-8,在tomcat中<Connector>设置,但此方法不太好,毕竟服务器的变动不是小事;方法二,设置URL编码格式,使用URLEncoder.encode(URL,"UTF-8");方法三,将字符串通过ISO8859-1进行解码,得到字节数组,然后数组使用UTF-8进行编码,得到的数据就不会出现乱码;

3.例子

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //获取域对象中的值
    String name = (String) req.getAttribute("NAME");
    String id = (String) req.getAttribute("ID");
    //转码,服务器默认使用ISO8859-1,将其转换成UTF-8
    String name1 = new String(name.getBytes("ISO8859-1"),"UTF-8");
    String id1 = new String(id.getBytes("ISO8859-1"),"UTF-8");
    //在浏览器输出值
    resp.setContentType("text/html;charset=UTF-8");
    PrintWriter writer = resp.getWriter();
    writer.write("姓名:" + name1 + "<br>");
    writer.write("编号:" + id1);
}

相关文章

网友评论

      本文标题:Post和Get请求乱码问题

      本文链接:https://www.haomeiwen.com/subject/hghhettx.html