解决IntelliJ IDEA控制台输出中文乱码问题

好久没写了哈哈。阔别csdn创作有1年。

本次乱码情况是某次课堂作业。

基本情况如下,主播当时正在完成Spring 框架的单元测试实践,通过 JUnit 测试类来验证 Spring 容器的功能。

当无奈课堂上死活没能解决中文乱码问题。

基本尝试过以下措施:

如果你也有类似的问题可以试试,万一解决了呢?

不亚于:

1.设置 IDEA 全局编码

操作:进入 File(文件) → Settings(设置) → Editor(编辑器) → File Encodings(文件编码),将全局、项目、属性文件编码均设为 UTF-8。

2.配置 JVM 运行编码

方法1:针对单个测试 / 运行任务

第一步:

第二步:在左侧列表中找到对应的测试类(如 TestStudentTestHelloSpring

第三步:

在右侧配置区域,找到 "环境变量" 输入框(若未显示,可点击 "修改选项"→"环境变量" 展开)。

添加环境变量:

名称:JAVA_TOOL_OPTIONS

值:-Dfile.encoding=UTF-8

方法2:修改 IDEA 全局 VM 选项(对所有项目生效)
  1. 点击 IDEA 顶部菜单栏 "帮助"(Help) → "编辑自定义 VM 选项"(若提示 "是否创建文件",选择 "是")。

2.在打开的文件中,新增一行:

-Dfile.encoding=UTF-8

  1. 保存文件后重启 IDEA,所有通过 IDEA 启动的 JVM 进程都会默认使用 UTF-8 编码。

3.设置项目编译编码

pom.xml 中添加 maven-compiler-plugin 插件,指定编译编码为 UTF-8。

复制代码
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding> <!-- 新增编码配置 -->
                </configuration>

4.JDK 层面配置

JDK 安装目录conf 文件夹中创建 java.options 文件,添加 -Dfile.encoding=UTF-8,强制 JDK 全局使用 UTF-8。

比如我用来编译的就是java23。

找到对应文件所在地后

创建一个java.options的文件。

内容如下:

-Dfile.encoding=UTF-8

然后保存,重启idea

然而这前四种方法,基本上都是网上各大帖子里搜来的,也许你们用其中某个方法就可以解决这个问题了。

然而主播这边依旧乱码。

但主播最后解决了。

解决策略如下:

5.代码层面强制编码【最终解决问题的办法】

通过 OutputStream 显式将字符串按 UTF-8 编码转为字节流输出,绕过环境编码冲突(最终解决问题的方案)。

说人话就是在代码编辑里强制要求输出UTF-8形式内容。

最终效果show:

OKOK。匆忙手打的一篇临时文章。希望能对你的问题有所帮助,期待下次再见。

相关推荐
魑魅魍魉都是鬼21 小时前
Android:java kotlin 单例模式
android·java·单例模式
WG_1721 小时前
Linux44:POSIX信号量:
java·开发语言
WZTTMoon21 小时前
Spring Boot 启动报错:OpenFeign 隐性循环依赖,排查了整整一下午
java·spring boot·后端·spring cloud·feign
苏渡苇21 小时前
Stream.collect() 的花式玩法:Collector.of() 自定义收集器
java·stream·jdk21·collector·jdk8+·自定义收集器
丶小鱼丶21 小时前
数据结构和算法之【队列】
java·数据结构
菜鸡儿齐1 天前
Unsafe方法学习
java·python·学习
汤姆yu1 天前
IDEA接入Claude Code保姆级教程(Windows专属+衔接前置安装)
java·windows·intellij-idea·openclaw·openclasw安装
prince051 天前
用户积分系统怎么设计
java·大数据·数据库
96771 天前
理解IOC控制反转和spring容器,@Autowired的参数的作用
java·sql·spring
SY_FC1 天前
实现一个父组件引入了子组件,跳转到其他页面,其他页面返回回来重新加载子组件函数
java·前端·javascript