使用背景:使用HttpClient发送Get请求的时候,有中文参数,在Servlet中接收的时候,取出请求的参数,然后在Servlet中转发Get请求。在Servlet中转发的Get请求的参数是GBK编码的。
不管我怎么设置编码,总是失败。
后来在Servlet中 添加 req.setCharacterEncoding("UTF-8");
然后para=req.getParameter("title");取出参数。
在转发的时候,设置参数GBK编码:para = URLEncoder.encode(para, "GBK");
再使用HttpClient发送Get请求。这个时候就成功了。
总结:在Servlet中接收参数的时候,必须指定req.setCharacterEncoding("参数编码方式");这样取出来的参数才不会乱码,随后对参数的处理才能成功。