當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
java.io.CharConversionException isHexDigit JS转码问题
生活随笔
收集整理的這篇文章主要介紹了
java.io.CharConversionException isHexDigit JS转码问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先escape(String)采用ISO Latin字符集對指定的字符串進行編碼。所有的空格符、標點符號、特殊字符以及其他非ASCII字符都將被轉化成%xx格式的字符編碼(xx等于該字符在字符集表里面的編碼的16進制數(shù)字)。
所以第一可以嘗試去掉escape()方法,用encodeURI(encodeURI(String))對你要進行傳遞的參數(shù)進行轉碼,然后在Servlet接受的時候用java.net.URLDecoder.decode(String,”UTF-8”) 即可
例如:
要做如下修改:
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") );另外,還有一種情況也會出現(xiàn)這類錯誤:
比如:點擊grid中的一行數(shù)據(jù)請求一個controller,將該行數(shù)據(jù)作為入?yún)鹘o這個controller,此時就會出項這個JS轉碼的問題,那么我們怎么解決呢?非常簡單!可以將該行數(shù)據(jù)在傳給后臺controller之前進行解析,解析成形如下面的JSON格式數(shù)據(jù)再傳給后臺就OK了:
//獲取輸入框中的查詢條件var interfaceNameBox=document.getElementById("interfaceName");var interfaceName=interfaceNameBox.options[interfaceNameBox.selectedIndex].text;var provinceBox=document.getElementById("province");var province=provinceBox.options[provinceBox.selectedIndex].text//var province = $('#province').val();var startDate=$('#startDate').datebox('getValue');var endDate=$('#endDate').datebox('getValue');//構造查詢參數(shù)var qryParam={interfaceName:interfaceName,province:province,startDate:startDate,endDate:endDate,pageNumber:pageNumber,pageSize:pageSize};總結
以上是生活随笔為你收集整理的java.io.CharConversionException isHexDigit JS转码问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Spring学习】spring注解自动
- 下一篇: 【Spring学习】spring提供的三