解决Tomcat控制台乱码、HTML乱码、system.out.println输出乱码、out.print乱码

news2024/11/24 20:27:55

开发环境

JDK8、IDEA 2023.1.2 (Ultimate Edition)、Tomcat 9.0.71

Tomcat控制台乱码

第一步:修改Tomcat目录下的 ./conf/logging.properties 文件,将3处UTF-8改为GBK,分别对应下图 IDEA 中的3个控制台的输出
在这里插入图片描述
在这里插入图片描述
第二步:删掉无用设置:删掉IDEA自定义VM选项的 -Dfile.encoding=UTF-8 ,删掉IDEA中Tomcat运行配置的虚拟机选项和传递的环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HTML 乱码、system.out.println输出乱码、out.println乱码

第一步:IDEA 设置:文件->设置->搜索”编码“(未安装中文插件时搜索”encoding“),按如下设置,全部统一为UTF-8
在这里插入图片描述
第二步:在 web.xml 中写入以下这段设置,使得servlet读取html时使用utf-8

    <!--HTML按UTF-8加载,默认为GBK-->
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.html</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
    </jsp-config>

第三步:HTML文档指定charset为UTF-8:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"> 都可以,然后注意查看HTML文档的右下角编码格式是否正确。
在这里插入图片描述
第四步:servlet跳转语句之前设置文件类型和编码 response.setContentType("text/html;charset=utf-8");,这样保证了out.print的编码为UTF-8
在这里插入图片描述
第五步:删掉无用设置:删掉IDEA自定义VM选项的 -Dfile.encoding=UTF-8 ,删掉IDEA中Tomcat运行配置的虚拟机选项和传递的环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

  • Tomcat控制台乱码容易解决,只需要修改文件里的三个UTF-8为GBK即可
  • HTML乱码、system.out.println输出乱码、out.print乱码的原因为文件、servlet、浏览器三者对数据流的编解码不同。第一步统一文件编码保证了基础,第二步修改web.xml文件改变了jsp即servlet读取html文件的编码格式(默认为GBK,与地区有关,所以如果将HTML的meta标签的charset设置为GBK则不会乱码,但是推荐统一为UTF-8),第三步写meta标签保证了浏览器的展示编码为UTF-8,第四步指定了out对象打印输出的编码并规定了浏览器展示的文件类型和编码,第五步的设置对于处理本文提到的乱码没有实质性作用,故删除,保留IDEA自定义VM选项的 -Dfile.encoding=UTF-8 会导致Tomcat控制台输出乱码,保留JAVA_OPTSJAVA_TOOL_OPTIONS变量传递会导致out.print打印输出乱码

放一张乱码对照表,可自行判断错误情况
在这里插入图片描述

若未解决问题,强烈推荐阅读以下两篇文章,能全面解决您的乱码问题,了解背后的原理

  • Servlet请求转发至html页面中文乱码问题与分析
  • 关于Servlet,JSP,HTML中文乱码的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/667184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL8.0与5.7版本的下载、安装与配置(atguigu)(史上最全最详细)

MySQL8.0与5.7版本的下载、安装与配置&#xff08;atguigu&#xff09;&#xff08;史上最全最详细&#xff09; 目录 MySQL8.0与5.7版本的下载、安装与配置&#xff08;atguigu&#xff09;&#xff08;史上最全最详细&#xff09;MySQL 8.0的下载MySQL5.7的下载MySQL8.0的安装…

01-初识threejs

基本概念 场景&#xff08;Scene&#xff09;&#xff1a;场景是 three.js 中所有 3D 对象的容器。它包含了所有的相机、灯光、几何体、材质、纹理等对象。相机&#xff08;Camera&#xff09;&#xff1a;相机定义了场景中的视角。它控制了场景中哪些部分会被渲染出来&#x…

逍遥自在学C语言 | 指针和数组的关联

前言 指针和数组之间存在着紧密的关系。在本文中&#xff0c;我们将探讨指针和数组的关系、指针算术和数组遍历、多维数组与指针以及指针数组和数组指针。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学…

车友俱乐部APP小程序系统开发功能有哪些?

车友俱乐部APP小程序系统开发功能有哪些&#xff1f; 1、用户注册&#xff1a;用户首次使用需要使用个人信息进行注册&#xff0c;创建自己的账户并登录才能使用汽车俱乐部APP小程序系统所提供的各项服务。 2、品牌分类&#xff1a;车友俱乐部根据汽车品牌的不同…

6.16 map和set接口

目录 1 Map接口1.2 特点1.3 继承结构1.4 常用方法1.5 练习&#xff1a;Map常用方法测试2 HashMap2.3 练习&#xff1a;获取HashMap的数据2.4 练习&#xff1a;字符串中字符统计3、 set接口3.1 概述3.2 Set集合的特点3.3 常用方法3.4 HashSet3.5 练习: Set相关测试3.6 练习: Set…

项目管理中,优秀的项目经理必须要善于制定目标

在项目管理中&#xff0c;就像船在大海上航行需要灯塔的指引一样&#xff0c;团队也需要明确的目标来指引前进方向。目标不仅仅是为了指引方向&#xff0c;更是凝聚人心的力量。因此&#xff0c;一个优秀的项目经理必须要善于制定目标&#xff0c;让员工为目标干活&#xff0c;…

云原生安全联防联抗策略玩转微隔离

前言 随着信息技术的发展、互联网的快速普及&#xff0c;越来越多的信息被存储在云端&#xff0c;企业面临的安全问题也日益突出。在《网络安全法》、《数据安全法》等多部法律法规要求下&#xff0c;各行业用户纷纷设立安全部门。不管安全部门里是“一人当关”还是“三三两两…

尖峰平谷电表

尖峰平谷电表是一种新型的电能表&#xff0c;可以分别测量电力资源的尖峰、峰、平、谷和深谷等不同时段的用电量和用电负荷。这种电表的出现是为了帮助电力公司实现节能减排和精细管理的目标&#xff0c;同时也能够帮助用户合理使用电力资源&#xff0c;降低用电浪费和碳排放。…

基于SSM的在线考试系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 在线考试借助于网络来…

7个银行的软件测试项目实战,别再说简历项目不知道怎么写了

目录 前言 项目描述1&#xff1a;上海华瑞银行直连票据项目 项目描述2&#xff1a;平安金服风控中台系统 项目描述3&#xff1a;众安创展APP项目 项 目4&#xff1a; 招商银行VTM自助渠道服务系统 项 目5&#xff1a;招商银行票据支付 项 目6&#xff1a; 平安银行风控系…

6.9关键字static,final的使用

关键字&#xff1a;static 概念 是java中的一个关键字 用于修饰成员&#xff08;成员变量和成员方法&#xff09; 类属性、类方法的设计思想 概念&#xff1a; 当我们编写一个类时&#xff0c;其实就是在描述其对象的属性和行为&#xff0c;而并没有产生实 质上的对象&#x…

带启动参数的启动idea

-Dspring.profiles.activedev -Dserver.addr192.168.1.153:8848

立即修复!华硕曝路由器的关键漏洞

近日&#xff0c;华硕针对多种路由器型号的漏洞&#xff0c;发布了安全固件更新&#xff0c;并敦促客户立即更新设备或限制WAN访问&#xff0c;以保证其设备安全。 华硕方面表示&#xff0c;新发布的固件中包含九个安全漏洞的修复程序&#xff0c;包括高漏洞和关键漏洞。其中最…

ZYNQ——锁相环(PLL)实验

文章目录 一、介绍二、添加时钟 IP三、设计源代码四、仿真测试五、添加 ILA IP六、分配引脚七、板上验证八、示波器输出九、问题汇总 一、介绍 ZYNQ开发板上只有一个50MHz的时钟输入&#xff0c;如果要用到其他频率的时钟&#xff0c;就需要通过FPGA芯片内部集成的PLL(Phase L…

认识磁盘及磁盘的读写原理

认识磁盘 磁盘是计算机主要的存储介质&#xff0c;可以存储大量的二进制数据&#xff0c;并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘&#xff08;Floppy Disk&#xff0c;简称软盘&#xff09;&#xff0c;如今常用的磁盘是硬磁盘&#xff08;Hard disk&…

linux centos Python + Selenium+Chrome自动化测试环境搭建?

在 CentOS 系统上搭建 Python Selenium Chrome 自动化测试环境&#xff0c;需要执行以下步骤&#xff1a; 1、安装 Python CentOS 7 自带的 Python 版本较老&#xff0c;建议使用 EPEL 库或源码安装 Python 3。例如&#xff0c;使用 EPEL 库安装 Python 3&#xff1a; sud…

【C语言初阶】循环语句的具体用法,有这篇博客就够了

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello米娜桑&#xff0c;这里是君兮_&#xff0c;今天又抽空为大家更新我们的主线0基础C语言啦&#xff01;今天要将的内容是循环语句的具体用法。同时如果你是0基础小白的话&#xff0c;建议先看看下面两篇博客哦&#…

普通人接了人生第一单

大家好&#xff0c;我是 “秋意零” &#xff0c;全网同名&#xff08;某平台多了一个数字0 “如&#xff1a;秋意零0”&#xff09;。 你&#xff0c;相信天上掉馅饼吗&#xff1f; 40 分钟赚 150 你敢信&#xff1f; 现在我突然有点信了&#xff0c;为什么呢&#xff1f;请…

ESP-C3入门19. RSA算法加密、解密的实现

ESP-C3入门19. RSA算法加密、解密的实现 一、概述二、重要函数1. mbedtls_pk_parse_public_key和mbedtls_pk_parse_key函数原型&#xff1a;函数参数&#xff1a; 2. mbedtls_pk_encrypt函数原型&#xff1a;函数参数&#xff1a;函数功能&#xff1a; 三、实现过程1. CMakeLis…

@Param注解的用法

1、使用Param注解的原因 在 Mapper接口中&#xff0c;当方法的参数为多个字面量类型&#xff0c;此时mybatis会将这些参数存储在一个Map集合中&#xff0c;以两种方式进行存储 1、以arg0.arg1…为键&#xff0c;以参数为值2、以param1&#xff0c;param2…为键&#xff0c;以…