`
songjindian
  • 浏览: 75620 次
  • 性别: Icon_minigender_1
  • 来自: 河南
文章分类
社区版块
存档分类
最新评论

用js彻底解决中文传递乱码问题

阅读更多
最近在做一个网站,当在前台用到
<a href="search.action?pageNow=<s:property value="#page.pageNow-1"/>&newsTitle=<s:property value="#session.title"/>">上一页</a>

这个通过超链接调用后台action的时候,因为newsTitle的值是中文的,所以在调用action的时候,后台获取到的newsTitle的值为????,也就是乱码,这怎么解决呢?我们呢都知道,在用超链接调用action的时候,使用的是url重定向,所以使用的是get方法,不会进行代码的解析,使用post当然可以,那就得写一个<form>,但是这样子做太麻烦了,所以下面是用js做的代码,js代码如下:
function linkClick(linkObject) {         
    var formObject = document.createElement('form');   
    document.body.appendChild(formObject);   
     formObject.setAttribute('method', 'post');   
     var url = linkObject.href;   
     var uri = '';   
     var i = url.indexOf('?');   
               
     if(i == -1) {   
        formObject.action = url;   
     } else {   
        formObject.action = url.substring(0, i);   
     }   
               
     if( i >= 0 && url.length >= i + 1) {   
        uri = url.substring(i + 1, url.length);   
     }   
  
     var sa = uri.split('&');   
               
     for(var i = 0; i < sa.length; i++) {   
       var isa = sa[i].split('=');         
       var inputObject = document.createElement('input');   
       inputObject.setAttribute('type', 'hidden');   
       inputObject.setAttribute('name', isa[0]);   
       inputObject.setAttribute('value', isa[1]);   
       formObject.appendChild(inputObject);   
     }   
               
     formObject.submit();   
               
     return false;   
}  
			

超链接上面写一个onclick时间即可:
<a href="search.action?pageNow=<s:property value="#page.pageNow-1"/>&newsTitle=<s:property value="#session.title"/>" onclick="return linkClick(this)">上一页</a>

上面的js的代码就是自动生成了一个<from>表单,然后又生成了隐藏域,把要传递的参数赋值给隐藏域,最后使用post方法提交,这样子就轻松解决掉了中文传递乱码的问题。
分享到:
评论

相关推荐

    SqlServer数据库中文乱码问题解决方法

    另一种彻底的解决方案是重新安装SQL Server,自定义安装过程中选择合适的语言版本和排序规则,这样可以避免后续的乱码问题。 在处理与ASP和SQL Server的UTF-8编码问题时,需要注意以下几点: 1. 确保ASP页面的编码...

    彻底解决jsp中用SmartUpload上传附件中文乱码问题实用.pdf

    在Java Web开发中,使用SmartUpload组件上传附件时,可能会遇到中文文件名乱码的问题。这个问题通常涉及到字符编码的处理,特别是在不同的操作系统和Web服务器环境下。以下是对彻底解决该问题的详细解析: 首先,...

    JS中页面与页面之间超链接跳转中文乱码问题的解决办法

    总结来说,解决JavaScript中页面跳转时的中文乱码问题,关键在于确保服务器端对于URL中的参数使用正确的编码进行解码。在Web开发中,我们通常推荐使用UTF-8作为全局字符编码,因为它是最通用的字符编码,能有效地...

    javascript通过url向jsp页面传递中文参数导致乱码解决方案

    在Web开发中,使用URL传递参数是一种常见的方式,但在处理中文字符时经常会出现乱码问题。由于HTTP协议本身是基于ASCII字符集,而中文字符不是ASCII字符,所以在URL中的中文字符如果不经过特殊处理就会造成乱码。...

    页面间跳转乱码

    在进行Web开发的过程中,经常会遇到页面间的跳转以及数据传递的情况。当涉及到中文等非英文...通过上述分析和解决方案,我们可以有效地解决页面间跳转传递中文参数时出现的乱码问题,提高Web应用的用户体验和稳定性。

    web开发各种乱码处理

    本文将全面解析Web开发中的乱码处理方法,旨在帮助开发者彻底解决中文乱码问题。 ### 一、理解乱码产生的原因 乱码的根本原因在于编码不一致或编码转换错误。Web应用涉及多个环节,包括客户端输入、服务器处理、...

    asp.net中在用ajax格式传递数据到aspx页面时出现乱码

    总之,解决AJAX传递数据出现乱码的问题,关键是要确保编码和解码的一致性。开发者应当注意编码函数的选择,并确保请求头中的`Content-Type`设置正确,同时要对服务器端的解码方式进行检查。这些步骤对于保证数据的...

    超链接传值不显示中文

    4. **异常处理**:添加异常处理逻辑,以便于出现问题时能够及时发现并解决问题。 5. **测试验证**:进行充分的测试验证,确保在各种情况下都能正常工作。 #### 四、总结 通过上述分析和解决方案,我们可以有效地...

Global site tag (gtag.js) - Google Analytics