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

Posted yanggb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中拼接中文参数,后台接收为乱码的问题的主要内容,如果未能解决你的问题,请参考以下文章

URL传中文参数导致乱码的解决方案之encodeURI

AJAX的url中文参数问题

tomcat设置utf-8编码,springMVC后台接收参数反而乱码

ajax提交java后台接收参数出现乱码

URL传参数导致乱码

Vue-Resourse发送请求后台接收参数乱码问题