中国程序员难免会遇到的问题就是字符乱码了。在本次项目的开发过程中,遇到了一些很头疼的问题,这里先把能想到的梳理出来,以备日后参考。
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互导代码的时候一定要注意编码格式!!!