[자바의 정석 - 기초편] ch1-8,9 첫 번째 자바 프로그래밍 작성
유튜브 강의 실습 과정중 cmd에서 자바 컴파일 시 발생한 에러이다.
"unmappable character for encoding"
"인코딩에 사용할 수 없는 문자"
구글링으로 이유를 찾아보았다.
에러 발생 이유
^ 문자로 표시된 부분에 한글로 주석을 작성하였는데 이곳에 오류가 있어보인다.
문자 인코딩의 문제로 컴파일되지 않고 있다.
컴퓨터에서는 한글 문자를 비트열로 부호화하는 방식(인코딩)은 대표적으로 utf-8, euc-kr, cp949, ms949
utf-8로 인코딩된 코드를 자바 컴파일에서 한글 윈도우의 기본 인코딩을 따라서 ms949 방식으로 읽으려고 시도했지만 실패하여 발생한 것
utf-8과 ms949와 같은 다른 한글 인코딩은 1바이트로 표시되는 영문자를 포함한 ascii 문자에서만 서로 호환성을 가진다. 영문자들은 잘 표시되지만 한글은 올바르게 출력되지 않는다.
해결 방법
해결 방법은 소스파일과 컴파일러의 인코딩 방식을 서로 일치 시켜주는 것
대략 아래 3가지 방법으로 가능하다.
- 편집기에서 파일 인코딩을 ms949로 저장
- 통합개발환경에서 컴파일 옵션으로 -encoding utf-8 을 설정
- 자바 컴파일러에게 명시적으로 파일의 인코딩을 지정하는 방법(javac 파일명 -encoding utf-8)
산업 표준인 유니코드를 사용하면 하면 호환문제가 발생하지 않으므로 2~3번으로 인코딩하는 것이 좋다.
$ javac Hello.java -encoding utf-8
$
"-encoding utf-8"을 작성해주니 잘 컴파일 되었다.
끝.
반응형
'Language' 카테고리의 다른 글
[Java] Final(최종) 이해 (0) | 2023.01.09 |
---|---|
[Java] 인터페이스(Interface) (0) | 2023.01.09 |
[Java] 다차원 배열 (0) | 2023.01.09 |
[복습용] Java 조건문 & 반복문 (0) | 2023.01.08 |
Java 메인메소드 public static void main(String[] args) 이해하기 (1) | 2023.01.05 |
댓글