[자바] 자바 한글깨짐 현상 해결방법

프로필

2021. 1. 12. 21:16

이웃추가

자바 한글깨짐 현상 해결방법을 알아보도록 하자

자바 공부를 하던 필자는 어느날 위와 같이 메모장에 자바 소스코드를 작성한 후 자바 소스 파일을 완성하였다.

이 소스파일에는 빨간줄로 표시된 것처럼 한글 문자열을 출력하는 내용을 담고 있었다.

이후 명령 프롬프트에서 이 소스 파일이 담긴 디렉토리에 접근한 후 "javac 소스 파일명"을 입력해서 컴파일하려고 하였다.

그런데 아래와 같이

SystemOutPrintln.java:8: error: unmappable character (0xEN) for encoding x-windows-949

라는 에러 문구가 발생하였다.

위의 소스코드 파일을 컴파일하니 인코딩 오류가 발생함

이는 한글을 인코딩하는 방법의 차이에 의해 발생하는 문제이다.

따라서 영어와 숫자 등만 출력하고자 한다면 원활하게 출력된다. 하지만 한글이 포함되면 간혹 이런 문제가 발생한다.


유니코드와 한글의 인코딩 방식에 대해 더 자세한 정보는 밑의 블로그들을 참고하면 좋을 것 같다.

https://www.morenice.kr/123


결론적으로 명령 프롬프트를 사용하는 윈도우 환경은 MS949(CP949) 인코딩 방식을 기본으로 사용한다.

그런데 자바로 작성한 소스코드는 한글에 대해서 UTF-8 인코딩 방식을 사용한다.

따라서 명령 프롬프트에 UTF-8 인코딩 방식으로 작성된 한글이 포함된 코드를 가져와서 컴파일하고자 하였기 때문에 오류가 발생한 것이다.

이에 대한 해결방법은 간단하다.

바로 소스파일을 컴파일할 때 "javac 소스 파일명" 대신에

"javac -encoding UTF-8 소스 파일명"을 쓰면 해결된다!

X

O

첫 번째 그림 대신에 두 번째 그림처럼 -encoding UTF-8을 추가하면 정상적으로 컴파일이 이루어진다!

소간지
소간지 IT·컴퓨터

소간지와 함께 하는 코딩 공부