后台获取ajax传参, request.getParameter(“参数名”) 中文乱码解决方法

    xiaoxiao2026-03-26  12

    后台获取ajax传递的参数, request.getParameter(“参数名”) 中文乱码解决方法 原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

    解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

    我们可以通过转码的方式解决乱码问题, 具体代码如下:

    String str= new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");

    ajax向后台传递参数: (参数名为name)

    $.ajax({ url:'localhost:8080/test/test.do', data: {'name': 'lili'} });

    后台获取参数: 1. 通过request获取

    @RequestMapping(value = "/test.do") @ResponseBody public Object selectAllDatas(HttpServletRequest request,HttpServletResponse response) { try { String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); return null; } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); return null; } }

    第二种: 直接获取

    @RequestMapping(value = "/test.do") @ResponseBody public Object selectAllDatas(String "参数名") { try { String("参数名".getBytes("iso-8859-1"), "utf-8"); return null; } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); return null; } }
    转载请注明原文地址: https://ju.6miu.com/read-1308195.html
    最新回复(0)