Character decoding failed. Parameter skipped.

来源:互联网 发布:环球易购 知乎 编辑:程序博客网 时间:2024/04/30 23:25

最近编码遇到的问题,解决方案如下

Test.jsp 主要代码:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Test</title>

   <script type="text/javascript" src="Js/common.js"></script>

 </head>

 <body>

   <form action="Action.jsp" method="Post">
    <input type="text" name="textValue" value="" id="textValue"/><br>
    <input type="button" value="提交" onclick="ClientFormPost(this.form);" />
</form>

</body>

</html>

 

common.js 主要代码:

 

//创建XMLHttp
function createobj() {
 if (window.ActiveXObject) {
         return new ActiveXObject("Microsoft.XMLHTTP");
     }
     else if (window.XMLHttpRequest) {
         return new XMLHttpRequest();
     }
}

 


//通用的客户端表单提交
function ClientFormPost(pFormName) { //处理提交CurConnStr在Action中指定
 var xmlhttp = createobj();
 var userInfo = getFormValue(pFormName);

 userInfo=encodeURI(userInfo);
 userInfo=encodeURI(userInfo);

 xmlhttp.open("POST",pFormName.action,false);
 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312") ;
 xmlhttp.send(tempStr);
 if (pShowBox=="1"){
 alert(responseStr);

 }
}

 

function getFormValue(pFormName) {
 var tempName="";
 var tempValue=""
 var tempString="";
 
 var tempForm=pFormName;

 for(i=0;i<tempForm.length;i++){
 // tempName=(tempForm[i].name);

  tempName=tempForm[i].name;
  tempValue="";
  if(tempForm[i].type=="text"||tempForm[i].type=="select-one"||tempForm[i].type=="hidden"||tempForm[i].type=="textarea"||tempForm[i].type=="botton"||tempForm[i].type=="password"){
  // tempValue=escape(tempForm[i].value);

   tempValue=tempForm[i].value;
   if (tempString=="") {
    tempString   +=tempForm[i].name+"="+tempValue;
   }else{
    tempString   +="&"+tempForm[i].name+"="+tempValue; 
   }
    
  }
return tempString;

}

 

Action.jsp 主要代码:

<%
  String str=request.getParameter("textValue");

  str= java.net.URLDecoder.decode(str,"UTF-8");
  out.println(str.toString());
 %>