Gradle 스크립트의 기반이 되는 gradle-wrapper.jar 의 기본 출력 인코딩 셋이 UTF-8 이다
그러나 윈도우 콘솔 환경에 기본 인코딩 셋은 MS949(CP-949 | EUC-KR)임
참고로 리눅스 Bash는 UTF-8이 기본 인것으로 안다
그러다 보니 Gradle 스크립트는 UTF-8로 출력되고 윈도우는 그걸 MS949 로 받고 있으니 깨지는 것
해결 방법
개같은 것이 인터넷에 해결방법 이라 떠돌아 다니는 것들은 Gradle 프로젝트 자체의 인코딩을 건드는 것들 뿐이다
최종 출력은 gradle-wrapper.jar이 담당하는거라 이쪽 출력을 수정하지 않으면 안되는데 이딴 건 나오지도 않는다
gradlew.bat 파일 수정
먼저 Gradle의 실행 스크립트인 gradlew 의 동작 원리를 보면 윈도우에서는 배치파일 인데
JVM 인자들이랑 여러 사용자 입력을 배치파일로 처리해서 gradle-wrapper.jar 에 전달하는 구조임
해당 파일에서 gradle-wrapper.jar 을 MS949 로 인코딩 해서 출력할 수 있도록 하면됨
# 해당 부분 찾기set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"# 이렇게 수정===set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" "-Dfile.encoding=MS949" "-Dstdout.encoding=MS949" "-Dstderr.encoding=MS949"===
build.gradle 수정
프로젝트 java 파일은 gradle 이 내부적으로 UTF-8로 읽을 수 있게 수정 해야 함