본문 바로가기

Study

인텔리제이 한글 인코딩 오류(UTF-8)

얼마 전부터 인텔리제이에서 한글 출력이 깨지는 문제가 발생했었다.

처음에는 한글 출력만 문제였어서 크게 신경쓰지 않았는데,

언제부터인가 한글로 주석처리 된 문장이 컴파일 에러를 일으키는 모양이었다.(당시 사진을 안찍어놔서 사진은 없음)

그때는 컴파일 에러가 떠도 다시 실행하면 두번째는 항상 에러 없이 실행됐기 때문에 이때도 별로 신경쓰지 않았다.

 

그런데 이번에 프로젝트를 하면서 이전에 했던 CRUD 기본기능 프로젝트에서 코드를 조금 수정하고 실행했더니,

한글로 주석처리 된 문장때문에 실행이 안되는 것이었다. (수정 전에는 문제없이 실행 됨)

이번엔 다시 실행해도 안되고 그냥 실행이 계속 안됐다. 

해서 파일 인코딩 관련해서 정보를 찾아 보면서 여러 방법을 시도 해 봤는데, 단순하게 해결되지는 않았다.

 

1. 설정에서 파일 인코딩 변경

 

사진처럼 (Wondows 기준) 파일 > 설정 > 에디터 > 파일 인코딩으로 들어가서 전역 인코딩과 프로젝트 인코딩을 설정한다. 한글 인코딩 문제의 경우 구글링했을 때 UTF-8로 바꿔주라는 글들이 많아서 전역 인코딩과 프로젝트 인코딩을 UTF-8 로 변경해 봤지만, 그렇게 했을 때 IDE 위에 빨간 줄로 에러가 발생했다. 

 

2. VM 옵션 편집

도움말 > 사용자 지정 VM 옵션 편집 을 누르면 아래처럼 vmoption 창이 뜬다. 거기다가 아래 문구를 추가하면 시스템 디폴트 인코딩이 UTF-8로 바뀌는 모양이다.

-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

내 경우는 저렇게 디폴트 인코딩을 UTF-8로 변경했을 때, 마찬가지로 IDE 위에 빨간 줄로 에러창이 떴기 때문에 다시 설정을 바꿔줘야 했다.

 

3. 문제가 발생한 파일만 개별 인코딩 적용(해결)

마지막으로 시도해 본 방법은, 한글 주석이 있는 파일만 UTF-8 인코딩을 바꿔 준 것이다.

인텔리제이 우측 하단에 보면 사진처럼 해당 파일의 인코딩 상태가 나오는데, 클릭해서 파일마다 인코딩 방식을 바꿔줄 수 있다. 나는 주석이 있어서 오류가 발생한 파일을 전부 저 방법으로 디폴트 인코딩에서 UTF-8 로 바꿔줬는데, 그제서야 한글 주석을 무시하고 프로젝트가 실행된다.

 

4. 정확히 무엇때문일까?

문제를 해결하고 나서, 문제가 된 파일의 인코딩을 UTF-8에서 다시 기본 인코딩 값(x-windows 949) 으로 바꾸고 실행을 해 봤는데, 이번에는 또 잘 실행됐다. 그러면 뭐가 문제였을까? 나중에 인코딩 관련 문제가 또 생겨서 더 깊게 파게 되면 알 수 있을 것 같다.