Yang.공부방

주석처리 컴파일 중 인코딩 오류 발생



컴파일 오류


컴파일 시 error: unmappable character (0xEC) for encoding x-windows-949오류 발생

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
C:\Temp>javac Hello.java
 
Hello.java:5: error: unmappable character (0xEC) for encoding x-windows-949
        //?옉?꽦?옄 : Yang
          ^
Hello.java:5: error: unmappable character (0xEC) for encoding x-windows-949
        //?옉?꽦?옄 : Yang
            ^
Hello.java:5: error: unmappable character (0xEC) for encoding x-windows-949
        //?옉?꽦?옄 : Yang
              ^
Hello.java:7: error: unmappable character (0xEC) for encoding x-windows-949
        ?옉?꽦?씪 : 2020.4.4
        ^
Hello.java:7: error: unmappable character (0xEC) for encoding x-windows-949
        ?옉?꽦?씪 : 2020.4.4
          ^
Hello.java:7: error: unmappable character (0xEC) for encoding x-windows-949
        ?옉?꽦?씪 : 2020.4.4
            ^
Hello.java:8: error: unmappable character (0xED) for encoding x-windows-949
        ?뀒?뒪?듃?슜
        ^
Hello.java:8: error: unmappable character (0xEC) for encoding x-windows-949
        ?뀒?뒪?듃?슜
          ^
Hello.java:8: error: unmappable character (0xED) for encoding x-windows-949
        ?뀒?뒪?듃?슜
            ^
Hello.java:8: error: unmappable character (0xEC) for encoding x-windows-949
        ?뀒?뒪?듃?슜
              ^
10 errors
cs

[오류 내용]

교재의 예문을 따라 하는 과정 중 오류가 발생하여 내용을 살펴보니 인코딩에 문제가 있다는 것을 알게 되었다.

한글 문자는 역사적인 이유로 각각의 문자를 비트열로 부호화하는 방식(인코딩)이 몇가지 있는데 대표적으로 utf-8, euc-kr, cp949, ms949이 있다.

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

utf-8, ms949와 같은 한글 인코딩은 1바이트로 표시되는 영문자를 포함한 ascii문자에서만 서로 호환성을 가질 뿐이라서 영문자들은 잘 표시하지만 한글은 알 수 없다는 문자로 해석될 뿐이다.


해결방법


해결방법으로는 컴파일러의 인코딩 방식과 소스파일을 일치시켜주는 3가지 방법이 있는데 아래와 같다.

  1. 편집기에서 파일 인코딩을 ms949로 저장 하도록 하는 방법

  2. 통합개발환경에서 컴파일 옵션으로 -encoding utf-8을 설정하는 방법

  3. 자바 컴파일러에게 명시적으로 파일의 인코딩을 지정하는 방법 ex)javac 파일명 -encoding utf-8


1
C:\Temp>javac Hello.java -encoding UTF-8
cs



'Java' 카테고리의 다른 글

데이터 타입  (0) 2020.04.08
변수와 리터럴  (0) 2020.04.07
자바(JDK), 이클립스 설치 및 환경구축  (0) 2020.04.03
자바 시작하기  (0) 2020.04.03