用字符串接收送前端返回的数据并输出
1 req.setCharacterEncoding("UTF-8"); 2 resp.setCharacterEncoding("UTF-8"); 3 4 String s1 = req.getParameter("userName"); 5 String s2 = req.getParameter("password"); 6 String[] values = req.getParameterValues("hobby"); 7 9 System.out.println("------------"); 10 System.out.println(s1); 11 System.out.println(s2); 12 System.out.println(Arrays.toString(values)); 13 System.out.println("------------");
控制台输出信息如下
出现中文乱码,为了排查问题,在原有代码的基础上添加输出一句中文
1 req.setCharacterEncoding("UTF-8"); 2 resp.setCharacterEncoding("UTF-8"); 3 4 String s1 = req.getParameter("userName"); 5 String s2 = req.getParameter("password"); 6 String[] values = req.getParameterValues("hobby"); 7 8 System.out.println("中文"); 9 System.out.println("------------"); 10 System.out.println(s1); 11 System.out.println(s2); 12 System.out.println(Arrays.toString(values)); 13 System.out.println("------------");
控制台输出结果如下
可见整个当前项目的文字输出都有问题,通过百度搜索,修改了idea的项目编码格式均为UTF-8,问题未得到解决;包括修改Tomcat的setting文件等等都没有有效解决问题,控制台输出依旧乱码。
我又在当前项目下新建了test类
1 public static void main(String[] args) { 2 System.out.println("中文"); 3 }
控制台能正常输出“中文”二字
此时我想到了之前的类有连接到Tomcat服务器,是服务器上的操作,而test类操作留在本地,发觉是Tomcat设置有异常,修改编辑其配置,在虚拟机选项一栏加上“-Dfile.encoding=GBK”问题的到解决