본문 바로가기
Java

[Java] CMD javac - unmappable character for encoding MS949

by 상후 2022. 7. 23.
728x90
반응형

 

 

 

 

1. 오류 분석

 

Windows의 CMD(명령 프롬프트)에서 작성한 java파일을 javac 명령어를 통해 컴파일하려고 하는데

아래와 같은 에러 메시지를 만났다고 합니다.

error : unmappable character for encoding MS949

 

컴파일 시 MS949로 인코딩을 진행한다. (따로 인코딩을 지정하지 않으면 플랫폼 기본값이 사용)

작성한 Java 파일에는 한글이 포함되어있어 인코딩에 사용할 수 없는 문자가 있다는 에러 메시지를 보여주며 컴파일에 실패한 것이다.

 


 

2. 해결 방법

1. javac 명령어 사용 시 encoding 옵션을 통해 UTF-8로 인코딩을 지정한 후 컴파일을 한다.

javac Test.java -encoding UTF-8

 

2. PC에서 기본 인코딩을 UTF-8로 지정 후 컴파일한다.

윈도우 - 환경변수 - 시스템 변수에 항목을 추가한다.
변수 이름 : JAVA_TOOL_OPTIONS
변수 값 : -Dfile.encoding=UTF-8

환경 변수 추가 후 CMD를 재실행하여 다시 시도해보면 옵션 없이 컴파일이 성공한다.

 

https://stackoverflow.com/questions/9661935/how-to-change-the-defaults-system-java-encode-form-in-windows

 

How to change the defaults system java encode form in windows?

When I tried to compile (use javac)some java sources files include a comment line which has some unrecognized char like ascii code 129 (~A), error got. The sources code looks like the following: ...

stackoverflow.com

 


 

IDE를 통해 개발하면 시스템 내에서 인코딩 문제를 해결하지 않아도 IDE 내에서 설정을 통해 해결이 가능합니다.

2번의 경우 IDE에서 컴파일할 때도 인코딩을 바꿨다는 안내 문구가 노출되기 때문에 참고만 하셔도 될 것 같습니다.

 

 

 

 

 

 

 

 

728x90
반응형

댓글