IDEA使用Tomcat服务器出现乱码问题排查过程

作一个积极的人html

编码、改bug、提高本身java

我有一个乐园,面向编程,春暖花开!mysql

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

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

����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺
复制代码

这里写图片描述

这非常郁闷,本想着一次性测试经过,没想到这里又让我停留! 看到乱码,内心不要惧怕,没关系张!冷静下来进行分析,看哪里出现问题!sql

开始思考:数据库

0:数据库(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/
复制代码

1:Tomcat---utf-8

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

2:jsp --- utf-8

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

3: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>
复制代码

4:request和response

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

5:java代码字符串编码

str = tmpWriter.getByteArrayOutputStream().toString("utf-8");
复制代码

所有都检查过以后,发现所有是utf-8。大写的一个懵字,所有是utf-8怎么仍是会有乱码出现呢?bash

好忧伤,难道是还有什么地方没有设置吗,我一想,是否是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
复制代码

用搜索引擎发现下面博文:Eclipse、IDEA环境下设置jvm默认编码

因而添加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,一切都解决了!完美!


谢谢你的阅读,若是您以为这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你天天开心愉快!



无论作什么,只要坚持下去就会看到不同!在路上,不卑不亢!

愿你我在人生的路上能都变成最好的本身,可以成为一个独挡一面的人

© 天天都在变得更好的阿飞云

相关文章
相关标签/搜索