본문 바로가기
Language

[Trouble Shooting] 자바 컴파일 에러 error: unmappable character for encoding MS949

by DevPark 2023. 1. 1.

[자바의 정석 - 기초편] ch1-8,9 첫 번째 자바 프로그래밍 작성

 

 

유튜브 강의 실습 과정중 cmd에서 자바 컴파일 시 발생한 에러이다.

"unmappable character for encoding" 

"인코딩에 사용할 수 없는 문자" 

unmappable character for encoding MS949

구글링으로 이유를 찾아보았다. 

 

 

에러 발생 이유 

 

^ 문자로 표시된 부분에 한글로 주석을 작성하였는데 이곳에 오류가 있어보인다. 

문자 인코딩의 문제로 컴파일되지 않고 있다.

 

컴퓨터에서는 한글 문자를 비트열로 부호화하는 방식(인코딩)은  대표적으로  utf-8, euc-kr, cp949, ms949

utf-8로 인코딩된 코드를 자바 컴파일에서 한글 윈도우의 기본 인코딩을 따라서 ms949 방식으로 읽으려고 시도했지만 실패하여 발생한 것

utf-8과 ms949와 같은 다른 한글 인코딩은 1바이트로 표시되는 영문자를 포함한 ascii 문자에서만 서로 호환성을 가진다. 영문자들은 잘 표시되지만 한글은 올바르게 출력되지 않는다. 

 

 

해결 방법

 

해결 방법은 소스파일과 컴파일러의 인코딩 방식을 서로 일치 시켜주는 것

대략 아래 3가지 방법으로 가능하다.

  1. 편집기에서 파일 인코딩을 ms949로 저장
  2. 통합개발환경에서 컴파일 옵션으로 -encoding utf-8 을 설정
  3. 자바 컴파일러에게 명시적으로 파일의 인코딩을 지정하는 방법(javac 파일명 -encoding utf-8)

산업 표준인 유니코드를 사용하면 하면 호환문제가 발생하지 않으므로 2~3번으로 인코딩하는 것이 좋다. 

$ javac Hello.java -encoding utf-8
$

-encoding utf-8

 "-encoding utf-8"을 작성해주니 잘 컴파일 되었다. 

 

끝. 

 

출처 : https://thelibraryofbabel.tistory.com/entry/%EC%9E%90%EB%B0%94-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EC%8B%9C-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%AC%B8%EC%A0%9C

https://lemonlemon.tistory.com/181

반응형

댓글