新版本 IDEA 如何处理控制台中文输出乱码的问题?

2022 年 6 月 19 日
 Richard14

按默认配置安装了最新的 idea 社区版,创建了新项目,并创建了 hello world 文件( src/Main.java )只有这一个文件。按 Ctrl+Shift+F10 单文件编译执行正常输出 hello world ,但如果替换为中文则会显示乱码。

目前做了的工作:在 Settings 里把 File Encodings 相关全部调成了 utf-8,以及把 idea 目录下的 idea64.exe.vmoptions ,修改为结尾添加了

-Dfile:econding=UTF-8
-Dconsole.encoding=UTF-8

经过以上两点修改后乱码问题仍无改善,请问应该怎么设置呢?网上资料大部分是旧版 idea 的,新版里不太适用

7603 次点击
所在节点    Java
39 条回复
mmdsun
2022 年 6 月 20 日
没用过社区版,最新旗舰版 idea 没有这个问题,莫非系统改过什么设置?
ThisDay
2022 年 6 月 20 日
idea64.exe.vmoptions 管用的,你是不是改错文件了,你不要自己找,直接点“帮助” -》“编辑自定义 vm 选项”
cubecube
2022 年 6 月 20 日
换个中文字体试试,之前出过问题发现是某些字体无法显示中文
Bingchunmoli
2022 年 6 月 20 日
@ComputerIdiot 是的,但是也是老软件,全局 UTF-8 其实有助于编码统一,但无助于 windows 的老旧生态
Richard14
2022 年 6 月 21 日
@kamal
@cubecube 如何指定字体呢?我是要修改 idea 设置还是 powershell 设置?

@leeyuzhe 试了修改后无变化。主目录下的 idea64.exe.vmoptions 内容有很多行与网上提供的一致,你说的那个位置打开只有一句-Xmx1454m ,不是一个文件啊
ThisDay
2022 年 6 月 21 日
我说那个位置 100% 会在启动时加载的,在那改准没错。
然后把你的乱码复制一段贴出来
Richard14
2022 年 6 月 21 日
mxjump
2022 年 6 月 21 日
@Richard14 楼主我 3 、4 个月前用 tomcat 也是控制台乱码,跟着这个帖子弄好的,你看看有没有用

百度搜“解决 IntelliJ IDEA 中 tomcat 控制台中文乱码问题”,csdn 的帖子,作者 Dragon~Snow

。。。。刚注册,发不了链接,,希望里面的办法能帮到楼主
mxjump
2022 年 6 月 21 日
@mxjump 应该第一个帖子就是
ThisDay
2022 年 6 月 21 日
@Richard14 你这方向找错了,你这种都是问号的乱码是以 utf8 的方式读取 gbk 编码的中文。所以你这个乱码不是 idea 的问题也不是 idea console 的问题,而是你的 java 程序输出了乱码。你点一下右上角调试运行那里那个“main”,然后编辑
然后添加运行时的 vm 参数-Dfile.encoding=UTF-8
ThisDay
2022 年 6 月 21 日
刚发现你的 File Encodings 一直写错了,注意是 file.encoding ,你一直写成了 file:encoding!
litchinn
2022 年 6 月 21 日
看到你的控制台用的是 jdk18 ,这个应该是 jdk18 的问题,https://bugs.eclipse.org/bugs/show_bug.cgi?id=579383
在 jdk18 的这个问题(具体原因不明)有结果之前,换成 GBK 或者更换成其他版本 jdk 可以解决
SMGdcAt4kPPQ
2022 年 6 月 21 日
@litchinn 之前用 JDK18 EA 的时候就遇到了这个问题,没想到 GA 了还没修
不能输出 Emoji 的问题有人反馈过吗?
SMGdcAt4kPPQ
2022 年 6 月 21 日
@nnegier 刚刚试了一下 Rust ,在 Windows Terminal 里运行能正确输出 Emoji ,在 CLion 和 conhost 能正确输出部分 Emoji ,中文当然都没问题
gumayusi
2022 年 6 月 21 日
我猜测一下,既然 OP 安装 IDEA 都要最新版,那想必 JDK 版本也是最新的。百度"IDEA Java18 中文",找到了一篇 CSDN 的博文,标题是"解决 jdk18 下 IntelliJ IDEA2021.3 中文乱码问题"。点进去看了一下,发现 IDEA 和 Java18 有兼容性问题。我用虚拟机里的全新 Windows11 测试了一下,安装全新的 IDEA+JDK17+JDK18 ,如果新建项目时使用 JDK17 ,中文就能正常显示,如果使用 JDK18 ,中文就会乱码(而且就是 OP 截图中菱形问号式的乱码),问题解决(*^_^*)。另外,Java18 默认编码改为 UTF-8 了,可能 IDEA 之前的代码兼容不了所以中文显示乱码,以后的版本应该会修复吧。
SMGdcAt4kPPQ
2022 年 6 月 22 日
@ComputerIdiot 之前用 JDK18 的时候也是乱码,但是换 Kotlin ,同样也是 JDK18 ,就不乱码
Richard14
2022 年 6 月 22 日
@leeyuzhe 网上教学直接复制的,没注意句号还是错的,害人不浅啊
goalidea
2022 年 7 月 13 日
这是提醒你需要付费上 ultimate 版🤪
spe
2022 年 9 月 3 日
搞了 2 小时,无数个方法,终于找到了,还真是 jdk18 的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/860741

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX