2월 08, 2024

자바 컴파일 시 unmappable character for encoding MS949 에러 해결

 Intellij, Eclipse와 같은 자바 tool에서는 잘 컴파일 되고 실행도 잘 되는데 cmd에서 javac라고 직접 입력을 할 경우에 가끔 unmappable character for encoding MS949라는 에러가 뜨곤 한다. 


에러가 나는 코드 라인에 들어가보면 영어가 아닌 한국어로 주석을 작성했다거나, encoding될 수 없는 문자를 사용했기 때문이다. 이를 해결하기 위해서는 javac를 할 때 encoding 방식을 바꾸어주면 된다. 


만약 terminal에서 javac 명령어를 실행하는 경우라고 생각해보겠다. 

//일반적인 compile 방식
javac "compile할 자바 파일명 입력 (예: Hello.java)" 


//encoding 변경 후
javac "compile할 자바 파일명 입력 (예: Hello.java)" -encoding UTF-8

위와 같이 -encoding UTF-8을 추가로 넣어주어 compile을 하면 잘 작동되는 것을 볼 수 있다.

 


encoding 방식을 바꾸기 싫다면 error가 뜨는 라인에 직접 찾아가 코드를 수정하는 방법도 있다. 특수문자, 한국어 등을 변경해주면 upmappable error는 사라진다.