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

2022-06-19 23:51:50 +08:00
 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 的,新版里不太适用

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

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

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

。。。。刚注册,发不了链接,,希望里面的办法能帮到楼主
mxjump
2022-06-21 13:01:49 +08:00
@mxjump 应该第一个帖子就是
leeyuzhe
2022-06-21 13:38:56 +08:00
@Richard14 你这方向找错了,你这种都是问号的乱码是以 utf8 的方式读取 gbk 编码的中文。所以你这个乱码不是 idea 的问题也不是 idea console 的问题,而是你的 java 程序输出了乱码。你点一下右上角调试运行那里那个“main”,然后编辑
然后添加运行时的 vm 参数-Dfile.encoding=UTF-8
leeyuzhe
2022-06-21 13:41:48 +08:00
刚发现你的 File Encodings 一直写错了,注意是 file.encoding ,你一直写成了 file:encoding!
litchinn
2022-06-21 16:53:33 +08:00
看到你的控制台用的是 jdk18 ,这个应该是 jdk18 的问题,https://bugs.eclipse.org/bugs/show_bug.cgi?id=579383
在 jdk18 的这个问题(具体原因不明)有结果之前,换成 GBK 或者更换成其他版本 jdk 可以解决
SMGdcAt4kPPQ
2022-06-21 18:04:59 +08:00
@litchinn 之前用 JDK18 EA 的时候就遇到了这个问题,没想到 GA 了还没修
不能输出 Emoji 的问题有人反馈过吗?
SMGdcAt4kPPQ
2022-06-21 18:59:30 +08:00
@nnegier 刚刚试了一下 Rust ,在 Windows Terminal 里运行能正确输出 Emoji ,在 CLion 和 conhost 能正确输出部分 Emoji ,中文当然都没问题
gumayusi
2022-06-21 22:14:29 +08:00
我猜测一下,既然 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-06-22 00:10:58 +08:00
@ComputerIdiot 之前用 JDK18 的时候也是乱码,但是换 Kotlin ,同样也是 JDK18 ,就不乱码
Richard14
2022-06-22 04:48:19 +08:00
@leeyuzhe 网上教学直接复制的,没注意句号还是错的,害人不浅啊
goalidea
2022-07-13 15:47:11 +08:00
这是提醒你需要付费上 ultimate 版🤪
spe
2022-09-03 00:23:50 +08:00
搞了 2 小时,无数个方法,终于找到了,还真是 jdk18 的问题

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

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

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

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

© 2021 V2EX