如何解决windows和linux下解析中文参数不一致的问题

作者: greatfeather 2017-01-28 10:37:54

近期我遇到了一个问题,就是将在windows下运行正常的Java站点部署到Linux下运行后中文请求参数解析乱码了。方法是我在客户端对要请求的中文参数进行两重encodeURIComponent()编码,后台直接调用request.getParameter()方法获取参数,并且对于Get和Post采用相同的方式处理。今天无意中尝试了一下如下的方法,发现不会出现这个问题了。方法如下:


 


首先,要明白GET请求和POST请求的机制是不一样的,所以编码机制也就不同。通过GET方式提交的参数在客户端必须显式调用编码函数进行编码,而通过POST方式提交参数时只要设置一下整体的编码方式即可,不需要单独对参数进行编码。客户端JSP页面的代码如下:




 


其次,服务端不能对GET请求和POST请求一概而论。当客户端设置为UTF-8后,服务端的POST方法就无需再解码了。服务端servlet的代码如下:




 


好了,运行jsp页面后测试提交中文参数时,无论通过GET还是POST方式都可以正确解析了。


 


本文永久更新地址:http://www.linuxdiyf.com/linux/27996.html

相关资讯