如何解决JAVA控制台程序输入中文时出现的乱码问题

createh52个月前 (01-14)技术教程19

JAVA源文件

import java.util.Scanner;

public class Hello {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("请输入你的名字:");
        String name = sc.next();
        System.out.println(name + "你好!");
    }
}

运行字节码文件时,输入中文变成乱码

java Hello
请输入你的名字:张三
????你好!

设置文件编码格式为GBK,即可消除乱码

java -Dfile.encoding=GBK Hello
请输入你的名字:张三
张三你好!

运行jar包时,输入中文变成乱码

java -jar Hello.jar
请输入你的名字:张三
????你好!

设置文件编码格式为GBK,即可消除乱码

java -jar -Dfile.encoding=GBK Hello.jar
请输入你的名字:张三
张三你好!

若要将jar包转为EXE文件,可为JAVA虚拟机添加-Dfile.encoding=GBK参数

相关文章

Java 数据输入输出是什么,怎么用?

Java 数据输入输出通常也被称为Java I/O,是Java程序中读取和写入数据的过程。Java I/O是Java中的一个核心部分,它被广泛应用于Java应用程序和Java Web应用程序中。在Ja...

VSCode中Java程序输入中文变成问号怎么办

问题描述在VSCode中编写一个Java程序,通过Code Runner运行程序时输入中文,结果输出为????。解决方案打开settings.json,添加以下配置设置: "terminal....

Java 缓冲输入输出是什么?怎么用?

Java 缓冲输入输出是通过在输入输出流上添加缓冲区来优化I/O操作的过程。这可以提高程序的执行效率,特别是在处理大量数据时。在Java中,Java API提供了BufferedInputStream...

Telnet命令是什么?如何使用?

telnet命令是一个常用的远程登陆工具,使用它,我们可以快捷地登陆远程服务器进行操作。那么如何使用telnet命令呢?首先,我们需要打开telnet功能,任何电脑默认是关闭此功能的,开启方式如下:打...

自学Java3(保姆级教学)——JAVA中的注释

在我们读书的时候,经常会看到书的最下面会有一些注释,对书中的一些词汇进行解释,在JAVA中同样也需要注释,一方面自己可能花了很久写好的代码,结果等到自己去测试检查的时候,发现不知道自己写的啥意思就挺尴...