[그림 1] AWT에서 한글이 깨져서 나오는 현상


AWT에서 한글 입력 시에 네모 글자로 나올 때가 있습니다. 정확한 이유는 모르겠지만 프로젝트의 인코딩과

컴파일시의 인코딩이 일치하지 않아서 발생하는 문제인 듯 합니다.


제 경우에는 프로젝트의 기본 인코딩이 UTF-8 인 경우였습니다.


보통은 Inherited Character Encoding 이라고 해서 디폴트 인코딩을 사용해서

문제 없이 사용할 수 있었는데, UTF-8로 지정하니 한글이 깨져버리네요.


이럴 때는 -Dfile.encoding=MS949 라는 VM Arguments를 추가해주면 됩니다.


상세한 설정 방법을 알아보도록 하겠습니다.


먼저 이클립스의 Package Explorer에서 프로젝트를 선택한 후 Alt + Enter 키 또는 마우스 오른쪽 버튼을 눌러

Properties for Project 대화상자를 엽니다. 제 경우의 프로젝트 이름은  GUI_MathML이군요.


[그림 2] Package Explorer에서 프로젝트 선택





[Properties for Project] 대화 상자가 열리면 Run/Debug Settings 탭으로 이동합니다.

그리고 Launch configurations for 'Project name': 항목을 보면 최근에 실행한 메인 클래스가 보이는데,

AWT의 메인이 되는 클래스를 클릭하고 [Edit...] 버튼을 누르시거나 더블클릭 해서 실행 설정 편집창을 엽니다.


※ 만약 아무런 클래스도 보이지 않는다면 [New...] 버튼을 눌러 Java Application을 선택하고 Main class를 선택하고, 이 후에 나오는 내용을 동일하게 적용하면 됩니다.


[그림 3] 프로젝트 속성 대화상자의 Run/Debug Settings 탭




[Edit configuration] 창이 열리면 Arguments 탭으로 이동하여 VM arguments: 란에

-Dfile.encoding=MS949 라고 입력해 준 후 [OK]버튼을 눌러 모든 설정을 완료하고 닫아줍니다.

[그림 4] Edit Configuration 대화상자의 Arguments 탭의 VM arguments 항목 수정





여기까지 설정을 마쳤으면 다시 프로그램을 실행해 봅니다.


[그림 5] 설정 완료 후  AWT 프로그램 재실행



이제 한글이 정상적으로 나옵니다. :D




'밤을 지새다 > Java' 카테고리의 다른 글

int 와 long 의 해시 값은 다르다?  (0) 2014.03.15
HashMap, ArrayList, LinkedList 속도 비교  (5) 2012.05.16
Java PriorityQueue  (0) 2012.05.07
Java StAX Event  (0) 2012.05.01
Java StAX: XMLStreamWriter - The Cursor Writer API  (0) 2012.04.30

+ Recent posts