今天重新学习了以下java的基础,发现在用Scanner类读取控制台输入内容的时候出现了乱码。
现在贴出乱码代码:
import java.util.Scanner;
public class C {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
System.out.println(s);
}
}
我输入的你好,结果打印出了下面的内容,经过百度排查,发现原来是因为编码的原因,当然出现乱码,肯定是因为编码,哈哈。
实际上,是我的项目设置的是utf-8编码,而键盘输入的默认是gbk编码(在下小白,以前都不知道这个。。。);
下面是改善的代码:
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class C {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = "";
try {
s = new String(scanner.next().getBytes("gbk"),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(s);
}
}
菜鸟的第一篇博客,写下来勉励一下自己,毕竟学到了点新东西。哈哈