Tomcat、Servlet字符集乱码

中国程序员难免会遇到的问题就是字符乱码了。在本次项目的开发过程中,遇到了一些很头疼的问题,这里先把能想到的梳理出来,以备日后参考。

1、Servlet接收前端传递的字符串,中文变成问号

  ①可能是tomcat/conf/server.xml配置问题

   解决方法,如图,加上URIEncoding="UTF-8"

  

   ②可能是servlet字符设置的问题

  解决方法:加上以下3行

        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");

  ③可能是接收参数的问题

  解决方法:如下

  这种方式可能存在一种问题,不要盲目使用,如果各种方法都试过了,不放把 "getBytes("ISO-8859-1"), "UTF-8""去掉,使用原始的方式接收传值

String keyWord = new String(request.getParameter("keyWord").getBytes("ISO-8859-1"), "UTF-8");

  ④可能是编译器的问题

  eclipse、IDEA编译器都有workspace的字符集,设置下,IDEA在安装目录下有idea.exe.vmoptions文件,也可以修改字符集,eclipse的自不用多说。

  注意,eclipse和IDEA互导代码的时候一定要注意编码格式!!!

 

 

 

 

  

posted @ 2017-03-23 20:15  AlgorithmInit  阅读(803)  评论(0编辑  收藏  举报