前后台傳中文參數亂碼問題


亂碼原因:

  在傳參的過程中,由於參數的編碼(如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