jquery ajax到servlet出现中文乱码(utf-8编码下)

  个人遇到的该问题有两大类:

  第一类很普遍,就是jsp页面编码没有规定,servlet中接收参数没有转码,response没有使用setContentType()和setCharacterEncoding等等原因造成的,这种问题网上有很多帖子互相抄袭,我只谈第二类;

  第二类是使用jquery的ajax功能向后台发送中文参数,后台接收到乱码,我出现这个问题就是拜网上的各种所谓完美解决方案所赐。

  产生这种问题的前提是:你的前台使用utf-8编码,后台接收ajax参数时还从ISO-8859-1向utf-8转码。

  jquery.js里有一项“ajaxSettings”,里面会规定:contentType: "application/x-www-form-urlencoded; charset=UTF-8";说明jquery的ajax参数是以utf-8编码传输的,如果没有“charset=UTF-8”,则是以ISO-8859-1(即Latin1)编码传输的。

  如果你的jquery里也是这么设定的,那么就不要在后台接收参数时使用 param = new String(request.getParameter(paramname).getBytes("ISO-8859-1"),"utf-8")进行转码,一转反而乱了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。