注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

jQuery中文乱码完美解决方案  

2013-01-16 19:26:28|  分类: JS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
jQuery中文乱码处理总结: 

1.  最简单的方式,是将项目的编码统一设置为UTF-8. 将数据交互时的编码都统一为"UTF-8"; 
其实中文乱码就是因为contentType没有指定编码,只需在jQuery.js中搜索
’contentType’
然后在application/x-www-form-urlencoded后面加上
; charset=UTF-8
最终变成
contentType:"application/x-www-form-urlencoded; charset=UTF-8"

2.  如果项目的编码已经统一设置为GBK或GB2312,则在ajax调用向服务端传递中文参数时容易出现中文乱码, 这时的处理方式如下: 

后台如: 

/* =============禁止缓存============== */ 
response.setHeader("Pragma", "no-cache"); 
response.setHeader("Cache-Control", "no-cache"); 
response.setHeader("Expires", "0"); 
/* =============禁止缓存============== */ 
response.setContentType("text/html;charset=UTF-8"); 
response.setCharacterEncoding("UTF-8"); 
//request.setCharacterEncoding("UTF-8"); 
String userName = request.getParameter("userName"); 
userName=URLDecoder.decode(userName, "UTF-8"); 
              
              //在springmvc中,如没有通过request,或直接设置jquery的编码设置,则需要如下方式转换。 
     // mykeyword = new String(keyword.getBytes("iso-8859-1"),"UTF-8"); 
              //但如果是encodeURI()函数转换,则如下就可以。注意,这时参数在 url后面。 
              userName=URLDecoder.decode(userName, "UTF-8"); 

前台如: 

var myurl="grzx/validateUserNameIsExists.do?userName="+username; 
myurl=encodeURI(myurl); 
myurl=encodeURI(myurl); 
jQuery.ajax({ 
url:myurl, 
type:'POST', 
async:false, 
data:{}, 
success:function(data){ 
    var msg=eval('('+data+')'); 
  //  var msg=JSON.parse(data); 
      if(!msg.result){ 
    jQuery('#myusername').attr('value',''); 
         alert('用户名已存在!请用新的用户名'); 
      } 
    } 
   });  

进行两次编码。  在前台传递的“哈哈大笑”,在后台编码前为:“%E5%93%88%E5%93%88%E5%A4%A7%E7%AC%91”;就算成功了。 

当然也可以只进行一次编码,方式是将jquery的编码设置为"UTF-8"; 加上;charset='UTF-8'就好了。如: 

Java代码 
  1. 在jsp端  
  2. //用post方法提交,客户端需编码数据,data : encodeURI(spost),  
  3. //var spost="commentContent="+commentContent+"&contentId="+contentId;  
  4. //spost =  encodeURI(spost);  
  5. 在action端  
  6. //用psot方法取值,客户端需编码,服务器端需解码  
  7. //String ii = request.getParameter("commentContent");  
  8. //ii = java.net.URLDecoder.decode(ii,"utf-8");  
  9.   
  10. 2、用get方式  
  11. jsp端  
  12. type:'GET',不需要处理  
  13. action端  
  14. String commentContent = new String((request.getParameter("commentContent")).getBytes("ISO-8859-1"),"UT简单的记录一下  



  评论这张
 
阅读(319)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016