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

Idea结合Tomcat,访问JSP页面使用response输出,出现了乱码!!!

大家好,又见面了,我是全栈君。

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

做一个积极的人

编码、改bug、提升自己

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

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

就在我从Jetty切换到Tomcat,就发生了问题,
访问JSP页面使用response输出,出现了乱码!!!

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

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

这里写图片描述

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

开始思考:

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怎么还是会有乱码出现呢?

好忧伤,难道是还有什么地方没有设置吗,我一想,是不是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,一切都解决了!完美!


谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!


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

博客首页 : https://aflyun.blog.csdn.net/

愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人
IDEA—IDEA使用Tomcat服务器出现乱码问题

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/121175.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • navcat激活码【在线注册码/序列号/破解码】

    navcat激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • phpstorm破解激活码【在线注册码/序列号/破解码】

    phpstorm破解激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • idea远程debug调试_eclipse远程debug

    idea远程debug调试_eclipse远程debug服务器端程序配置第一种方式比如我这次是需要远程debugpresto程序,然后在presto目录下的etc/jvm.config中添加了如下一行命令-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5009扩展:transport:调试时的通讯数据传输方式。address:地址端口server:是否监听调试请求。suspend:是否等待启动,即是否在debuger调试链接建立后才启动debugJVM。第二种

  • Navicat15激活码一直生成不了(注册激活)

    (Navicat15激活码一直生成不了)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlHQE565NV3W-eyJsaWNlbnNlSWQi…

  • IDEA快捷键设置复制上一行

    IDEA快捷键设置复制上一行Idea真是的一个神奇的ide,用着爱不择手。之前用习惯了eclipse的“ctrl+向下箭头”,复制一行,如何设置idea里这个快捷键呢File-&gt;settings-&gt;keymap-&gt;搜索duplicate-&gt;双击DuplicateEntireLines设置一下,搞定,又可以很爽的用ctrl+向下箭头复制一行了虽说以上的一种解决方法,但是经…

  • webstrom2021激活码【最新永久激活】

    (webstrom2021激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号