Java代码在Windows命令行打印特殊字符显示为问号的问题
Windows命令提示符中Java打印字符画乱码的解决方法
问题出在编码不匹配——Windows命令提示符默认使用GBK(或GB2312)编码,而你代码里的特殊字符(比如・、ㅅ、っ、 ̄这些)是UTF-8编码的,直接输出会因为编码不兼容导致乱码。以下是两种解决办法:
方法1:修改Java程序的输出编码
在输出字符画前,把System.out的编码设置为GBK,和命令提示符的默认编码匹配:
import java.io.PrintStream; public class javaClass { public static void main(String [] arg) throws Exception { // 设置输出编码为GBK,适配Windows命令提示符 System.setOut(new PrintStream(System.out, true, "GBK")); String row1 = "A____A"; String row2 = "|・ㅅ・|"; String row3 = "|っ c|"; String row4 = "| |"; String row5 = "| |"; String row6 = "U ̄ ̄U"; System.out.println(row1); System.out.println(row2); System.out.println(row3); System.out.println(row4); System.out.println(row5); System.out.println(row6); } }
注意:main方法需要声明throws Exception,因为设置编码可能触发不支持编码的异常。
方法2:修改Windows命令提示符的编码
- 打开命令提示符,执行以下命令切换到UTF-8编码:
chcp 65001
- 重新编译并运行你的Java代码,特殊字符就能正常显示。
如果切换编码后字体显示异常,右键命令提示符窗口标题栏→属性→字体,选择支持UTF-8的字体(比如Consolas、微软雅黑)。
内容的提问来源于stack exchange,提问作者bob bob
相关产品推荐
相关产品推荐

