• IDEA——IDEA使用Tomcat服务器出现乱码问题


    最近刚使用IDEA,在开发一个功能的时候,开始使用Jetty作为容器进行web项目开发,测试通过。然后想了一下线上服务器使用的容器是Tomcat,还是用Tomcat跑一下项目在测试一下,本地和服务器使用相同的容器,这个可以避免因为容器不同而导致本地测试通过,而上线又出现莫名的错误~!
    就在我从Jetty切换到Tomcat,就发生了问题,访问JSP页面使用response输出,出现了乱码!!!

    就是下面这些东东:(这是什么啊!萌币中。。。。。)

     ����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺
    

    这里写图片描述
    这很是郁闷,本想着一次性测试通过,没想到这里又让我停留!
    看到乱码,心里不要害怕,不要紧张!冷静下来进行分析,看哪里出现问题!

    我开始思考:

    first :数据库(mysql)---utf-8

    show variables like 'character%'

    character_set_client	utf8
    character_set_connection	utf8
    character_set_database	utf8
    character_set_filesystem	binary
    character_set_results	utf8
    character_set_server	utf8
    character_set_system	utf8
    character_sets_dir	/aebiz/soft/mysql/share/charsets/
    

    second:Tomcat---utf-8

      <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"/>
    

    Third:jsp --- utf-8

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    

    fourth:web.xml---utf-8

    <filter>
    		<filter-name>CharacterEncodingFilter</filter-name>
    		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    		<init-param>
    			<param-name>encoding</param-name>
    			<param-value>utf-8</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>CharacterEncodingFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    

    Fifth:request和response

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

    Sixth:java代码字符串编码

     str = tmpWriter.getByteArrayOutputStream().toString("utf-8");
    

    全部都检查过之后,发现全部是utf-8。大写的一个懵字,全部是utf-8怎么还是会有乱码出现呢?

    好忧伤,难道是还有什么地方没有设置吗,我一想,是不是IDEA结合Tomcat编码设置有问题导致的呢?按照这个思路发现奇迹就在前面!

    在配置Tomcat的时候添加一些参数。如下(开始是没有设置-Dfile.encoding=UTF-8)

    -server
    -Xms1024m
    -Xmx2048m
    -XX:PermSize=512m
    -XX:MaxPermSize=512m
    -XX:+CMSClassUnloadingEnabled
    -XX:+PrintGCDetails
    -Xloggc:%M2_HOME%/gc.log
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan
    

    用搜索引擎发现下面博文:
    http://blog.csdn.net/u014424628/article/details/49429393
    于是添加VM参数添加

    -Dfile.encoding=UTF-8

    配置参数就是

    -server
    -Xms1024m
    -Xmx2048m
    -XX:PermSize=512m
    -XX:MaxPermSize=512m
    -XX:+CMSClassUnloadingEnabled
    -XX:+PrintGCDetails
    -Xloggc:%M2_HOME%/gc.log
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan
    -Dfile.encoding=UTF-8
    

    启动发现页面乱码不见了,可是控制台有出现了乱码,乱码真是 生生不息 啊!

    这里写图片描述

    于是配置

    idea安装目录下的bin文件夹,idea.exe.vmoptions文件中
    添加一条配置信息:-Dfile.encoding=UTF-8

    这里写图片描述

    so,一切都解决了!完美!

    推荐文章:

    http://mp.weixin.qq.com/s/QE5-Mw1kVzvzb_SiI1ZIFQ


    欢迎访问我的csdn博客,我们一同成长!

    "不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"

    博客首页http://blog.csdn.net/u010648555

  • 相关阅读:
    2016-8-29
    2016-8-25
    2016-8-24
    2016-8-23
    2016-8-22
    2016-8-16
    2016-8-15
    深圳_多测师面试 __腾讯云/_高级讲师肖sir
    深圳_多测师面试 _新字节跳动(2020年10月23日)_高级讲师肖sir
    多测师讲解自动化 _RF_(202)高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/aflyun/p/6600919.html
Copyright © 2020-2023  润新知