java.io.CharConversionException: isHexDigit JS轉碼問題

      首先escape(String)採用ISO Latin字符集對指定的字符串進行編碼。所有的空格符、標點符號、特殊字符以及其他非ASCII字符都將被轉化成%xx格式的字符編碼(xx等於該字符在字符集表裏面的編碼的16進制數字)。

      所以第一可以嘗試去掉escape()方法,用encodeURI(encodeURI(String))對你要進行傳遞的參數進行轉碼,然後在Servlet接受的時候用java.net.URLDecoder.decode(String,"UTF-8") 即可。

For example:

      var url = "UpdateContractServlet?contractId="+ escape(contractId);   //此處傳遞一個參數

      System.out.println(request.getParameter("contractId"));                     //此處取值會出現中文亂碼形如???

需作如下修改:

      var url = "UpdateContractServlet?contractId="+ encodeURI(encodeURI(contractId)); 

      或者

      var url = "UpdateContractServlet?contractId="+ contractId;

      url =  encodeURI(encodeURI(url));

 

      System.out.println(java.net.URLDecoder.decode(request.getParameter("contractId"),"UTF-8") );

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章