Java

[Java] CMD javac - unmappable character for encoding MS949

상후 2022. 7. 23. 20:58
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
반응형