js中关于get请求(包括异步以及直接用过网页连接请求),后台接收乱码问题

一、用$.get异步请求,因为参数是这样提供的

{name: '中文'},所以可以这样修改{name: encodeURI('中文', 'utf-8')};就行了,后台就可以接受到已经转换的字符串,但是不是utf-8格式的,

encodeURI('中文', 'utf-8')转换后是"%E4%B8%AD%E6%96%87";


二、用使用window.location.href = '....?param=中文';就不能用以上方法了,否则后台还是接受称问题,这时候因为是浏览器定向直接访问某个请求,而这时候可能受了浏览器本身对中文的处理影响,故而不需要指定转换的数据类型,而是需要转化两次,如用一下方式转化中文:

window.location.href = '....?param=' + encodeURI(encodeURI('中文'));



最后就是关于服务器是怎么接受中文的了,一般情况下,中文会选择使用post方式请求,非要用get的时候只能修改服务器接受中文的模式,这里我没有用就不多加说明,网上有说明,那么此刻服务器接受需要

URLDecoder.decode(request.getParameter("name"), "UTF-8");来接受编码并进行转化,因为从前台过来的数据并不是utf-8,而是转换称了前后台都可以去间接转化的格式GBK

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值