Mac终端打印特殊符号变为问号的问题求助
Mac终端打印特殊符号显示问号的解决方案
确认终端字符编码设置
打开终端,通过顶部菜单栏进入「终端」→「设置」→「高级」,找到「字符编码」选项,确保选中「UTF-8」。若已为UTF-8,可先切换至其他编码再切回,重启终端后测试。强制Java程序使用UTF-8输出
启动Java程序时添加VM参数,强制指定编码:java -Dfile.encoding=UTF-8 YourMainClass若使用IDE运行,在运行配置中添加VM参数:
-Dfile.encoding=UTF-8更换终端支持特殊符号的字体
进入终端设置的「文本」选项卡,将字体更换为支持Unicode方块字符的类型,比如系统默认的Menlo、SF Mono,或第三方字体Noto Sans Mono,更换后重启终端验证。代码中显式指定输出流编码(可选)
若上述方法无效,可在Java代码里直接设置输出流的编码:import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; public class Main { public static void main(String[] args) { String msg = "WebServer running on http://localhost:8080"; String msg2 = "Boot-up time: 0,8588 seconds."; try (PrintWriter writer = new PrintWriter( new OutputStreamWriter(System.out, StandardCharsets.UTF_8), true)) { writer.println("╭" + "─".repeat(msg.length()) + "╮"); writer.println("│" + msg + "│"); writer.println("│" + " ".repeat(msg.length()) + "│"); writer.println("│" + msg2 + " ".repeat(msg.length() - msg2.length()) + "│"); writer.println("╰" + "─".repeat(msg.length()) + "╯"); } } }
内容的提问来源于stack exchange,提问作者MrMikkel
相关产品推荐
相关产品推荐

