使用sublime编写java发现用Scanner输入中文字符串再打印出来是乱码

问题遇到的现象和发生背景

使用sublime编写java时发现了一个问题,当我使用 Scanner输入一个中文字符串时,再把输入打印出来发现是一串乱码

用代码块功能插入代码,请勿粘贴截图

import java.util.Scanner;

public class SeqSearch03{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("输入");
String findName = myScanner.next();
System.out.println(findName);
}
}

运行结果及报错内容

输入
小明
输出:С??

我的解答思路和尝试过的方法

我以为是编码出现问题把编码设置为GBK但并没有解决

我想要达到的结果

希望输入和输出有相等的结果
我初学java才疏学浅希望可以得到帮助,非常感谢帮我解答。

修改代码,使用GKB字符集

Scanner myScanner = new Scanner(System.in, "GBK");

确保CMD控制台是GBK编码,打开cmd窗口后,在窗口顶部右击选择属性,选中选项后会看到默认编码为gbk

img

jvm的编码方式和sublime编辑器编码方式不一致而导致乱码。将sublime编码方式设置为和jvm相同。

Scanner myScanner = new Scanner(System.in, "UTF-8");
可以这样处理试试,把Scanner的编码格式设置成utf-8的r

是编码问题
1、你的代码文件编码;
2、你的命令窗口的编码

这2个的编码要一致即可解决。

如遇到其他问题,欢迎交流。

一、左上角文件(file)→ 以....编码保存(save with encoding)→ 选择GBK或者GB18030编码
二、左上角文件(file)→ 保存(save)。
完成这两步就不会乱码了

编码问题.jvm的编码方式和sublime编辑器编码方式不一致

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^