1. 程式人生 > >Eclipse 控制檯輸入中文再讀出來亂碼的解決方案

Eclipse 控制檯輸入中文再讀出來亂碼的解決方案

今天寫了一個程式,發現怎麼都調不通,後來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兩邊一定不要出現空格,否則設定無效。