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


乱码原因:

  在传参的过程中,由于参数的编码(如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会自动进行一次解码,而我们在后台接参的时候会手动解码一次,所以前端会进行两次转码。

      

      


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM