前后台传中文参数乱码问题

乱码原因:

  在传参的过程中,由于参数的编码(如UTF-8、GBK等)不确定,以至于我们在后台接参的时候不知道要接受的参数是哪种编码格式,从而出现后台接收的参数出现乱码。

解决办法:

  在前端传参的时候先将参数进行编码,统一将多字节的参数转为Ascii字符串,然后由后台进行解码并指定你需要的编码,这样就能得到你想要的不乱码的参数了。

  示例:

    前端:

      var str = encodeURI(encodeURI("我不想乱码"));  //转码过后的中文参数

      var url = "/vehicleinfoAction!verifyPassed.action?str="+str; //上面参数传入后台

    后台:

      String str=request.getParameter("str");

      str= java.net.URLDecoder.decode(str,"UTF-8"); //这句话一定要,因为如果不写的,将会得到一个乱码的参数,这一定不是你想看到的。

 

  注:这里前端出现了两次转码,解释一下,因为将参数传入后台的时候我们的服务器tomcat会自动进行一次解码,而我们在后台接参的时候会手动解码一次,所以前端会进行两次转码。

      

      

posted @ 2016-03-16 12:04  余海清  阅读(6963)  评论(0编辑  收藏  举报