url传输中出现中文的解决办法

以下在我代码的编译环境中通过,有以下两个页面

reponse.jsp页面:
   request.setCharacterEncoding("utf-8");//注意此必须要有,作用是是两个页面的编码相同
  String ch="白日依山尽,黄河入海流。\n欲穷千里目,更上一层楼。";

/*这里需要编码两次,我尝试如果编码一次会出现乱码,至于为什么是两次,有知道的小伙伴请告诉我一声,当然也可以写成ch=java.net.URLEncoder.encode(java.net.URLEncoder.encode(ch,"utf-8"),"utf-8");*/


   ch=java.net.URLEncoder.encode(ch,"utf-8");
   ch=java.net.URLEncoder.encode((ch),"utf-8"); 
   response.sendRedirect("show.jsp?ch="+ch);

 

show.jsp页面:

 response.setCharacterEncoding("utf-8");//注意这个必须要有,作用是与传输页面的编码保持一致
  String ch=request.getParameter("ch");
      ch=java.net.URLDecoder.decode(ch,"utf-8"); //解码只需要解一次,这个同上,有知道的小伙伴求告知
   /*在网上上打印传输过来的中文*/
      Writer w= response.getWriter();
      w.write(ch);
      w.flush();

效果:

 

安卓的实现方法:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type","text/html;charset=utf-8");
conn.setRequestMethod("POST");

后端show.jsp不变

Guess you like

Origin blog.csdn.net/weixin_44710155/article/details/108847876