js符号转码_js传特殊字符到controller (java)的转码问题

原标题:js传特殊字符到controller (java)的转码问题

1.一串特殊字符

\\&\\,\_)(*&^)\,\\。\\+_}

2.ajax请求

$.ajax({

url: $("#contextPath").val + "/test",

type: "POST",

data: {str: '\\&\\,\_)(*&^)\,\\。\\+_}'}

});

3.controller

import java.net.URLDecoder;

import java.net.URLEncoder;

@RequestMapping(value = "/test", method = RequestMethod.POST)

@ResponseBody

public Object searchCompany(String str, HttpServletRequest request) {

try {

log.info(str);

//java接收到的,被转码了,

//打印结果: \\&\\,\_)(*&^)\,\\。\\+_}

str = request.getParameter("str");

str = URLEncoder.encode(companyName, "ISO8859-1"); //编码

str = URLDecoder.decode(companyName, "UTF-8"); //解码

log.info(str);

//处理后

//打印结果:\\&\\,\_)(*&^)\?\\?\\+_}

} catch (UnsupportedEncodingException e) {

e.printStackTrace;

}

}

第一个log打印的是:\&\,_)(&^)\,\。\+_} java转码了。
第二个log打印的是:\&\,_)(&^)?\?\+_} js传来的

总结

先编码,再解码。

67190315b99b9407f89691568fd9f9d4.png

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值