servlet中文乱码

乱码来自哪里

一、表单

  1、get

  解决办法:request.setCharacterEncoding("UTF-8");

  2、post

  解决办法:写一个工具类

 public class EncodingUtil {
   public static String strTran(String str) {
      String utfStr = null;
      if(str==null)
         return null;
      try {
         utfStr = new String(str.getBytes("ISO-8859-1"),"UTF-8");
      } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
      }
      return utfStr;
   }
 }

  

二、超链接

   解决办法:同get方法相同

三、sendDirect

  解决办法:同get方法相同

特别说明:如果你的浏览器是Ie6或是以下版本,则我们的第二和三种情况会出现乱码(当中文是奇数时)

解决办法:String info = java.net.URLEncoder.encode("你好吗.jpg","utf-8");

<a href="www.test.com?name="info></a>

说明:我们应当尽量用Post方式提交

在服务器端是中文,在reSponse的时候,也要考虑浏览器显示是否正确,一般我们通过response.setContentType("text/html;charset=utf-8");

原文地址:https://www.cnblogs.com/jggz/p/3039273.html