今天遇到了java后台模拟http请求,以POST方式传参中文乱码,google了一下,大部分是在打开的HttpURLConnection的输入流的时候设置编码(utf-8),按照设置,试了下并没有解决问题,想了下原理,我本身就是全UTF-8环境,不设置utf-8,应该是也是utf-8的流。
没办法就自己截取了一个页面post请求看了下,发现其requestHeader是
("Content-Type","application/x-www-form-urlencoded; charset=UTF-8")。
所以应该是POST的form没有转码的问题,在后台请求的HttpURLConnection中做如下设置:
urlConnection.addRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");