Eclipse 控制台输入中文再读出来乱码的解决方案

时间:2024-03-30 17:48:58

今天写了一个程序,发现怎么都调不通,后来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模式:

Eclipse 控制台输入中文再读出来乱码的解决方案

我明明输的是中国,进入程序以后变成了乱码。

 

结果:

Eclipse 控制台输入中文再读出来乱码的解决方案

后来百度了很久,最终找到解决办法:

解决步骤如下:

(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两边一定不要出现空格,否则设置无效。