java프로그램중에, 한글을 입력을 받아서, txt 파일로 저장하는 부분이 있다.

영문이나 숫자로 입력을 받은 데이타들은 문제가 없었으나, 한글로 입력을 받으려고 하면 특정 상황에서 한글이 깨지는 상황이 발생했다.

FileReader, FileWriter 을 사용하고 있는데,

FileInputStream, FileOutputStream 을 사용하여, UTF-8을 적용하면 된다는 내용 확인

( http://blog.naver.com/software705/220587262406 )


FileOutputStream을 사용하여,

OutputStreamWriter writer = new OutputStreamWriter(output, "UTF-8")

하지만, 파일과 로그에는 계속 깨진 한글이 사용된다.


처음부터 추적을 해본 결과,

입력을 하는 부분에서 문제가 발생하고 있다.


콘솔창을 통하여 한글을 입력하고 있는데,

Scanner sc = new Scanner(System.in);

String a = sc.next();

입력값을 바로 확인해봐도, 깨진 한글이 들어와있다.


해결방법은,

이클립스를 종료후, 

eclipse 설치폴더에 들어가서, eclipse.ini 파일을 수정

파일에 -Dfile.encoding=UTF-8  을 추가하고 저장

다시 이클립스를 시작


Scanner 를 통해서 한글입력이 가능하고,

FileOutputStream 을 사용하지 않아도, txt 파일내에 한글저장이 가능해진다.

Posted by 스타켄지니어
,