现在的位置: 首页 > 综合 > 正文

超链接中文传值问题解决

2012年06月30日 ⁄ 综合 ⁄ 共 1887字 ⁄ 字号 评论关闭
 

问题:

  1. <a href="IPAssetAdmin.do? materialDn=<%= material.getDn() %>"  >
  2.                   <%= material.getName() %>
  3. </a>

 

如果material.getDn()是中文,在servlet中通过request.getParameter(name); 得到的值是乱码。

 

解决方案:

js代码:

  1. <script language="JavaScript" type="text/JavaScript">
  2. <!-- add the js function by suqiang to solve the Chinese illegible Characters (only for get method,for example:link)  -->
  3. function linkClick(linkObject) {   
  4.                
  5.     var formObject = document.createElement('form');   
  6.     document.body.appendChild(formObject);   
  7.      formObject.setAttribute('method''post');   
  8.      var url = linkObject.href;   
  9.      var uri = '';   
  10.      var i = url.indexOf('?');   
  11.                
  12.      if(i == -1) {   
  13.         formObject.action = url;   
  14.      } else {   
  15.         formObject.action = url.substring(0, i);   
  16.      }   
  17.                
  18.      if( i >= 0 && url.length >= i + 1) {   
  19.         uri = url.substring(i + 1, url.length);   
  20.      }   
  21.   
  22.      var sa = uri.split('&');   
  23.                
  24.      for(var i = 0; i < sa.length; i++) {   
  25.        var isa = sa[i].split('=');         
  26.        var inputObject = document.createElement('input');   
  27.        inputObject.setAttribute('type''hidden');   
  28.        inputObject.setAttribute('name', isa[0]);   
  29.        inputObject.setAttribute('value', isa[1]);   
  30.        formObject.appendChild(inputObject);   
  31.      }   
  32.                
  33.      formObject.submit();   
  34.                
  35.      return false;   
  36. }  
  37. </script>

 

 

超链接调用js代码:

  1. <a href="IPAssetAdmin.do?type=<%= op %>&materialDn=<%= material.getDn() %>"  onclick="return linkClick(this)">
  2.                   <%= material.getName() %>
  3. </a>

 

 

reference:

http://xuxiaolei.javaeye.com/blog/187024

 

 

另外:

response.getWriter().write(strHtml);

如果strHtml中含有中文,在jsp/js中接收到的strHtml中含有乱码,解决方案:在write前response设置编码;

response.setContentType("text/html;charset=GB2312");   //add by suqiang to reslove the Chinese Character problem

response.getWriter().write(strHtml);

 

抱歉!评论已关闭.