주석처리 컴파일(인코딩)오류
Java2020. 4. 4. 22:33
주석처리 컴파일 중 인코딩 오류 발생
컴파일 오류
컴파일 시 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가지 방법이 있는데 아래와 같다.
편집기에서 파일 인코딩을 ms949로 저장 하도록 하는 방법
통합개발환경에서 컴파일 옵션으로 -encoding utf-8을 설정하는 방법
자바 컴파일러에게 명시적으로 파일의 인코딩을 지정하는 방법 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 |