• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

土鳖不土,战斗力五

天地玄宗,万炁本根。广修万劫,证吾神通。
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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")进行转码,一转反而乱了。

posted on 2014-02-17 13:00  土鳖不土,战斗力五  阅读(522)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3