关于ajax提交中文乱码的问题

      几天前,在用jquery以及ExtJs时发现,如果页面采用pageEncoding=“GBK”编码,在使用这两个js框架做ajax请求时,传递的中文参数就会变成乱码。后来发现原来是这两者的核心js中对于ajax请求都采用了默认的转码。

  此外,如果在所开发的系统中也采用的过滤器转码的话,一个请求在进行了多次转码之后就更乱了。

  因此,我首先创建新的请求后缀,使它不经过过滤器,这样系统中其他的请求后缀也不用变,修改幅度小。另外,修改了以上提到的两个JS库的核心js的部分内容,具体为:

  查找“application/x-www-form-urlencoded”,在其后添加“;charset=UTF-8”,同事请求改为post方式,这样中文参数在提交过程中就有了显式的编码方式。这样,后台也不用在拿到参数后一个一个转码就能得到正确的值。整体来说修改的东西不多,对已经写好的部分功能也没有影响。

      同时,在tomcat的server.xml中也有关于编码的修改,这是tomcat在解析时使用的编码格式,也可以声明其具体的编码格式,例如URIEncoding="UTF-8"。

  在此分享这个成果,希望被传值后乱码搞的痛不欲生的童鞋们有所帮助。

      Hoping us to get rid of transcoding!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值