2012-02-02 2 views
2

퀴어 문제가 있습니다. 자바로이 코드를 가지고 있습니다 :특수 문자가 잘못 입력되었습니다.

Scanner keyboard = new Scanner(System.in); 
System.out.print("Enter word: "); 
String word = keyboard.nextLine(); 
System.out.println(word); 

그러나 특수 문자의 경우 스캐너 클래스가 잘못되어있는 것처럼 보입니다. 예를 들어 ħabel을 입력하면 ħabel이 인쇄됩니다. 이클립스의 콘솔 출력은 UTF-8로 설정되었으므로 입력에서 오는 것 같아요. Scanner 클래스의 인코딩 옵션을 찾지 못했지만 해결책을 찾지 못해서 정말 재미있게 검색했습니다. 어떻게이 문제를 해결할 수 있을까요?

감사합니다.

+0

특별한 무엇입니까 당신이 사용한 성격? – kosa

답변

2

베어 InputStreamScanner을 설정하면 기본 문자 집합 (ASCII 인 것처럼 보임)을 사용하여 읽습니다. 내가 러셀의 대답은 올바른 생각

Scanner keyboard = new Scanner(new InputStreamReader(
        System.in, Charset.forName("UTF-8"))); 
+0

감사합니다 Russel, 그래도 작동하지 않았다 ... –

+1

이 질문이 도움이 될 수 있습니다 : http://stackoverflow.com/questions/8669056/unicode-input-in-a-console-application-in-java –

+0

지적한대로 위의 질문, Windows에서 콘솔 입력 특수 문자를 작동하지 않는 것 같습니다. 나는 파일로부터 입력을 읽는 것으로 되돌아 갔다. 고마워 Russel –

0

을, 그러나 당신의 입력 캐릭터 세트가 없습니다 UTF-8 이 시도 것 같다 : 당신은 문자 집합을 지정하려면,이 작업을 수행 이 Scanner s= new Scanner(new InputStreamReader(System.in,Charset.defaultCharset()));

관련 문제