Windows平台上Idea、Tomcat、浏览器页面显示乱码问题解决

news/2025/2/22 22:56:26/文章来源:https://www.cnblogs.com/code-xu/p/18730027

核心:乱码问题是由于字符编码不一致导致的,所以解决乱码问题的核心概念是统一字符编码。

首先我们查看各个平台的字符编码:

Windows

cmd中输入chcp 命令查看(Windows系统默认字符编码时GBK)

  • 936 代表 GBK
  • 65001 代表 UTF-8
    注意:通过chcp命令如 chcp 65001 来更改字符编码只对当前控制台生效!

Idea

Setting > Editor > File Encodings

image

Tomcat

Tomcat安装位置 > conf > logging.properties文件

image

默认是 UTF-8

Tomcat乱码原因

Tomcat启动及Tomcat系统日志乱码

Tomcat启动运行会调用系统配置好的Java虚拟机,而Java虚拟机使用的字符编码是操作系统默认的字符编码。tomcat默认编码是UTF-8,Windows系统默认编码是GBK,所以Tomcat会乱码。

Tomcat运行过程中项目打印的信息乱码

我们项目在使用Tomcat调试运行时会有相应的Tomcat配置,如:

image

此处虚拟机参数配置为了指定项目运行时依赖的JVM的字符编码。和咱们Idea中的项目编码统一

浏览器中页面乱码

浏览器中页面乱码与否是由 项目中运行时JVM使用的编码 以及 页面指定的编码 是否统一来决定。

项目中运行时JVM使用的编码,前文Tomcat乱码已经说过了。
页面指定的编码 可以在 <head> 标签中添加子标签 <meta charset="UTF-8"> 来设置

Idea控制台乱码

Idea控制台乱码与否跟 项目编码项目中运行时JVM使用的编码 是否统一有关,IDEA控制台有智能解析能力(控制台支持多种编码【如IDEA控制台支持UTF-8】,控制台会自动尝试正确解析输出内容),所以即使编码不一致也不一定会乱码,但是我们尽量保持编码统一。

解决乱码问题

解决乱码问题的根源就是解决编码不一致问题,前文已经分析了各个地方的编码,可以看到很多乱码问题其实跟JVM使用的字符编码有关,JVM默认使用操作系统默认的编码(Windows默认GBK,Linux默认UTF-8)。咱们按照实际情况更改统一编码即可,推荐全部设置为UTF-8。

推荐直接更改Windows的默认字符编码为UTF-8,可能会对一些不支持UTF-8的老旧软件有影响,但对于咱们开发者来说利大于弊。

Windows11更改系统默认编码

按win键打开面板搜索并进入【语言设置】

然后进入管理语言设置

image

然后进入更改系统区域设置

image

然后勾选上 UTF-8的支持

image

点击确定后会提示重启电脑,重启即可设置完成。
开机后CMD控制台中输入 chcp 命令查看是否输出 65001 ,输出说明更改成功。

如果项目中使用了日志框架导致日志乱码,则更改对应日志框架的字符编码设置即可。

参考:
解决Tomcat中文乱码问题——windows平台
DEA项目使用tomcat运行和页面乱码问题
访问网页中文出现乱码(Tomcat)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于 xrlong 是神的论证

xrlong orz搜索内容搜索结果__________________________________________________________________________________________本文来自博客园,作者:CuFeO4,转载请注明原文链接:https://www.cnblogs.com/hzoi-Cu/p/18729881

idea插件+cursor使用技巧

cursorignore配置# Compiled files *.class *.jar *.war# Build directories target/ build/# IDE files .idea/ *.iml .vscode/ .project .classpath .settings/# Logs *.log logs/# Temporary files *.tmp *.bak *.swp# Maven specific .mvn/ mvnw mvnw.cmd# Spring Boot spe…

设计测试用例方法 -经验方法(三种)

1、基于经验的测试技术之错误推测法 错误推测法也叫错误猜测法,就是根据经验猜想,已有的缺陷,测试经验和失败数据等可能有什么问题并依此设计测试用例2、基于经验的测试技术之异常分析法 系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依…

DeepSeek 即将发布 5 个开源项目;Cartesia Voice Changer:声音转换、克隆和实时语音翻译丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

Spring复习-注解开发

@Component 基本Bean注解,主要是使用注解的方式替代原有xml的 标签及其标签属性的配置使用@Component 注解替代标签使用:再类上使用 @Component(value = "userDao") //若没有配置value,默认使用类名作为beanName public class UserDaoImpl implements UserDao { }…

测试用例编写技巧

一、用例模板 模板1:模板2:模板3:二、用例的来源 (1)公司就有模板 (2)自己设计模板 (3)用例管理工具种导出模板 三、写用例的核心要素 用例编号、用例标题、前置条件、用例步骤,预期结果、优先级(必填) 系统名称、模块名称、用例创建时间、用例类型、实际结果、执行…

利用deepseek,体验ai写代码

vscode利用cline接入火山引擎deepseek,免费体验ai写代码。注册火山引擎,开通deepseek服务进行火山引擎官网https://www.volcengine.com/,进行注册。进入控制台,访问火山方舟在左侧下拉菜单选择开通管理,开通模型,由于我已经开通过R1模型,以DeepSeek-R1-Distill-Qwen-32B…

测试用例编写

模板1:模板2:模板3:二、用例的来源(1)公司就有模板(2)自己设计模板(3)用例管理工具种导出模板三、写用例的核心要素用例编号、用例标题、前置条件、用例步骤,预期结果、优先级(必填)系统名称、模块名称、用例创建时间、用例类型、实际结果、执行时间(非必填项)四…

TEN 现已接入智谱 GLM-Realtime丨社区来稿

就在上周,三星 Galaxy S25 系列全球首发。基于最新 Galaxy AI 的三星 Galaxy S25 系列手机是三星在全球范围内首次推出具有视频通话功能的原生 AI 智能硬件产品。三星 Galaxy S25 系列背后的智谱最新实时音视频通话 GLM-Realtime 模型,今天已经以插件形式接入 TEN。现在你可以…

Canvas._left will be removed, DO NOT USE IT

问题:SignaturePad 手绘板,在电脑端可以绘制,在小程序端绘制以后不显示。开发者工具打印日志:Canvas._left will be removed, DO NOT USE IT.原因:真机使用时确实无法获取该canvas的实例属性_left.解决:通过微信小程序的wx.createSelectorQuery()方法得到query筛选器,通…

实战解析传统发电站智能化改造-第二期(带图带教程)

传统发电站的智能化改造,如同为老工匠配备高科技工具,提升效率与精准度。改造后的发电站兼具传统与智能,更高效、环保,适应现代能源需求。智慧系统搭建平台是连接感知层和应用层的桥梁,将原始数据转化为有价值的信息,为智能决策和应用提供支持。上期介绍了传统发电站改造…

PostgreSQL技术大讲堂 - 第80讲:duckdb数据库

PostgreSQL第80讲:主题:duckdb数据库 内容介绍: 1、duckdb身世之谜 2、duckdb性能为什么秒杀众多数据库 3、安装duckdb时如何跳过众多的坑 4、duckdb的使用和管理 5、duckdb、pg_duckdb、pg三个数据库性能大比拼 主讲老师:CUUG数据库老陈,PG中文社区委员、CCF数据库专委会…