今天写了一个程序,发现怎么都调不通,后来debug发现,原来是eclipse又调皮了,
主要问题在于,当我用new Scanner().next();输入一个中文字符串进去时,eclipse获取到的这个字符串竟然是乱码的,以前都没有这样的情况;
下面用一段测试代码展示一下这个问题:
package cn.yqh.main;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个中文词语:");
String s = sc.next();
System.out.println("你输入的中文词语为:");
System.out.println(s);
}
}
debug模式:
我明明输的是中国,进入程序以后变成了乱码。
结果:
后来百度了很久,最终找到解决办法:
解决步骤如下:
(1)关闭Eclipse;
(2)在Eclipse.exe同目录下,有一个eclipse.ini,打开,然后添加这么一句:
-Dfile.encoding=utf-8
保存;
(3)重新打开Eclipse,问题就没有了。
-Dfile.encoding=utf-8,就是字面上的意思,设置系统属性file.encoding为utf-8.
这里的-Dfile.encoding=utf-8两边一定不要出现空格,否则设置无效。