Tomcat(톰캣) 콘솔창 한글 인코딩 깨짐 현상 해결하기
게시글
⏰ 2021-05-22 03:52:51
D O W N
D O W N
톰캣을 구동하다보면 심심치않게 마주하는 오류(?)는 아니고 현상.
Windows Console의 기본 인코딩과 Tomcat이 출력하는 인코딩이 서로 달라서 생긴다.
실력 좋은 개발자가 아니더라도, 컴퓨터와 친분이 있다면 언어가 깨짐은 곧 인코딩의 불일치라는 걸 개괄적으로 이해하고 있다. 이러한 현상이 일어나는 이유는 아래와 같은데,
이 처럼, 기본 인코딩이 서로 다르다.
이를 해결하는 방법은 크게 두 가지가 존재한다. 개인적으로 두 번째 방법을 추천한다.
첫 번째로, Windows Console의 인코딩을 변경한다. Windows 10 기준으로 OS의 기본 콘솔은 cmd와 PowerShell 두 가지다. 사용할 콘솔의 기본 인코딩을 EUC-KR에서 UTF-8로 변경해주면 된다.
애석하게도, 두 콘솔 모두 인코딩을 변경하는 옵션을 제공하지 않는다. 그렇다고 방법이 없는 건 아니고, 레지스트리 수정을 통해 문제를 해결할 수 있다.
POWERSHELL
1 2 3 4 5 6 7 8
# cmd %SystemRoot%_system32_cmd.exe # 32비트 PowerShell %SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe # 64비트 PowerShell %SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe
이렇게 하면 Windows Console과 Tomcat의 기본 인코딩이 UTF-8로 서로 일치하므로, 한글이 정상적으로 출력된다.
하지만 이 방법은 Windows Console의 인코딩을 바꾸므로, 차후 해당 콘솔을 통해 다른 작업이나 프로그램이 실행될 경우 엉뚱한 프로그램의 한글이 깨질 우려가 있다.
(대부분은 OS 언어의 기본 인코딩을 따라가도록 설계함)
Windows Console은 범용적으로 사용되는 프로그램이므로, 다른 작업에 영향을 줄 수 있다. 내가 이 방법을 굳이 추천하지 않는 이유이기도 하다.
두 번째로, Tomcat Console의 인코딩을 변경한다. 첫 번째 방법보다 이 방법이 나은 이유는, Tomcat이라는 제한적인 용도의 콘솔에만 영향을 미치기 때문. 어차피 Tomcat Console의 인코딩이 불일치해서 생기는 문제이므로, 이쪽을 바꾸는게 상식적으로도 맞다.
대부분 마찬가지로 위 방법처럼 레지스트리를 수정하라고 안내할텐데, Tomcat은 굳이 그렇게 바꿔줄 필요 없다.
Tomcat을 실행하면 한글이 정상적으로 출력된다.
🏷️ Related Tag