url中拼接中文参数,后台接收为乱码的问题

遇到在URL中拼接中文的参数,后台拿到的数据为乱码的问题。

解决的方法是在客户端对这个中文参数进行编码,然后服务端再进行解码就行了。

客户端编码(JavaScript)

var url = "contract!select.action?chineseParam=" + encodeURI(encodeURI("我是中文参数"));

注意:编码的时候需要使用两次encodeURI()方法,写一个就是????号,写两个则输出: %4d%5a这种。

服务端解码(Java)

String chineseParam = java.net.URLDecoder.decode(chineseParam, "UTF-8");

这样就能实现中文参数的前后端传递了。

另外要注意的是,这种方式只有在拼接URL参数的场景下有效,如果是将参数传递放在请求体中,比如AJAX中的data,是不需要对中文参数进行手动编码和解码操作的,只需要保证前后端的编码配置一致即可。

 

"人生最遗憾的,莫过于轻易地放弃了不该放弃的,却固执地坚持了不该坚持的。"

你可能感兴趣的:(url中拼接中文参数,后台接收为乱码的问题)