반응형
Jake Seo
제이크서 위키 블로그
Jake Seo
전체 방문자
오늘
어제
  • 분류 전체보기 (715)
    • 일상, 일기 (0)
    • 백준 문제풀이 (1)
    • 릿코드 문제풀이 (2)
    • 알고리즘 이론 (10)
      • 기본 이론 (2)
      • 배열과 문자열 (8)
    • 데이터베이스 (15)
      • Planet Scale (1)
      • MSSQL (9)
      • 디비 기본 개념 (1)
      • SQLite 직접 만들어보기 (4)
    • 보안 (7)
    • 설계 (1)
    • 네트워크 (17)
      • HTTP (9)
      • OSI Layers (5)
    • 회고 (31)
      • 연간 회고 (2)
      • 주간 회고 (29)
    • 인프라 (52)
      • 도커 (12)
      • AWS (9)
      • 용어 (21)
      • 웹 성능 (1)
      • 대규모 서비스를 지탱하는 기술 (9)
    • 깃 (7)
    • 빌드 도구 (7)
      • 메이븐 (6)
      • 그레이들 (0)
    • Java (135)
      • 이펙티브 자바 (73)
      • 자바 API (4)
      • 자바 잡지식 (30)
      • 자바 디자인 패턴 (21)
      • 톰캣 (Tomcat) (7)
    • 프레임워크 (64)
      • next.js (14)
      • 스프링 프레임워크 (28)
      • 토비의 스프링 (6)
      • 스프링 부트 (3)
      • JPA (Java Persistence API) (5)
      • Nest.js (8)
    • 프론트엔드 (48)
      • 다크모드 (1)
      • 노드 패키지 관리 매니저 (3)
      • CSS (19)
      • Web API (11)
      • tailwind-css (1)
      • React (5)
      • React 새 공식문서 요약 (1)
      • HTML (Markup Language) (5)
    • 자바스크립트 (108)
      • 모던 자바스크립트 (31)
      • 개념 (31)
      • 정규표현식 (5)
      • 코드 스니펫 (1)
      • 라이브러리 (6)
      • 인터뷰 (24)
      • 웹개발자를 위한 자바스크립트의 모든 것 (6)
      • 팁 (2)
    • Typescript (49)
    • 리눅스와 유닉스 (10)
    • Computer Science (1)
      • Compiler (1)
    • IDE (3)
      • VSCODE (1)
      • IntelliJ (2)
    • 세미나 & 컨퍼런스 (1)
    • 용어 (개발용어) (16)
      • 함수형 프로그래밍 용어들 (1)
    • ORM (2)
      • Prisma (2)
    • NODEJS (2)
    • cypress (1)
    • 리액트 네이티브 (React Native) (31)
    • 러스트 (Rust) (15)
    • 코틀린 (Kotlin) (4)
      • 자바에서 코틀린으로 (4)
    • 정규표현식 (3)
    • 구글 애널리틱스 (GA) (1)
    • SEO (2)
    • UML (2)
    • 맛탐험 (2)
    • 리팩토링 (1)
    • 서평 (2)
    • 소프트웨어 공학 (18)
      • 테스팅 (16)
      • 개발 프로세스 (1)
    • 교육학 (1)
    • 삶의 지혜, 통찰 (1)
    • Chat GPT (2)
    • 쉘스크립트 (1)
    • 컴파일 (2)
    • Dart (12)
    • 코드팩토리의 플러터 프로그래밍 (4)
    • 플러터 (17)
    • 안드로이드 스튜디오 (1)
    • 윈도우즈 (1)
    • 잡다한 백엔드 지식 (1)
    • 디자인 패턴 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 플라이웨이트패턴
  • 싱글톤
  • 메이븐 라이프사이클
  • 러스트
  • 슬로우 쿼리
  • 메이븐 골
  • bean Validation
  • 토비의 스프링
  • 도커공식문서
  • 추상 팩터리 패턴
  • 자바스크립트 면접
  • 느린 쿼리
  • 자바스크립트 인터뷰
  • 이펙티브 자바 item9
  • Java
  • prerendering
  • 자바 검증
  • next js app
  • 싱글톤 패턴
  • item8
  • item9
  • 메이븐 페이즈
  • 이펙티브 자바
  • 이펙티브자바
  • NEXT JS
  • Next.js
  • Pre-rendering
  • 싱글턴
  • 서버리스 컴퓨팅
  • 스프링 검증
  • 팩터리 메서드 패턴
  • 객체복사
  • 알고리즘
  • 자바 디자인패턴
  • item7
  • 외래키 제약조건
  • 작업기억공간
  • rust
  • 프로그래머의 뇌
  • 자료구조
  • serverless computing
  • 자바스크립트
  • MSSQL
  • try-with-resources
  • 자바
  • pnpm
  • 빈 검증
  • 참조 해제
  • 디자인패턴
  • Javadoc 자바독 자바주석 주석 Comment

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Jake Seo

제이크서 위키 블로그

Java/톰캣 (Tomcat)

인텔리제이 콘솔에서 톰캣 한글 로그가 깨질 때 해결 방법

2023. 4. 13. 14:45

증상 체크

  • 톰캣 서버를 띄웠는데, 콘솔에서 한글이 잘 찍히지 않는다.
  • 초기화 과정에서 나오는 메세지가 깨져서 나온다.

기본 Intellij 콘솔 인코딩 깨짐 해결

  • 아래의 화면처럼 깔끔한 초기화 로그가 뜨지 않고 여러 문자가 깨져보일 때 해결하는 방법이다.

picture 4

Intellij File Encodings 체크

  • 상단부터 차례대로 체크해본다.
    • 통신에는 UTF-8 이 가장 범용적으로 사용되므로 UTF-8 로 모두 고정해주는 것이 좋다.
      • 가변길이 인코딩으로 통신 시 공간효율이 좋다.
    • Global Encoding, Project Encoding, Default encoding for properties files
    • 아래의 Transparent native-to-ascii conversion 도 체크하는 것이 좋다.
      • 네이티브 문자 인코딩에서 ASCII 인코딩으로 변환할 때 텍스트의 의미나 내용을 변경하지 않는 것을 의미한다.
      • ASCII 인코딩을 지원하는 모든 시스템에서 ASCII로 인코딩된 파일 또는 문자열을 읽고 처리할 수 있다.

picture 1

VM Options 체크

  • VM Options 는 자바 가상 머신(JVM)을 띄울 때 커멘드라인에 사용자 정의 옵션을 더해 실행하는 것이다.
  • Help > Edit Custom VM Options... (맨 아래에서 4번째)

picture 2

  • 파일 인코딩과 콘솔 인코딩을 UTF-8 로 고정해준다.
-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

picture 3

설정 이후에도 안되는 경우

  • 자바 JDK 버전이 너무 높은 경우 (18 이상), 버전을 낮추면 한글이 되는 경우가 있다.

추가적 톰캣 인코딩 깨짐 해결

이 부분은 모든 한글 깨짐을 다 해결하고 싶을 때 추천한다. 위에 과정만 거쳐도 딱히 그냥 개발하는데 문제가 없다.

catalina.bat 수정하기

  • 주석이 끝나는 부분에 언어설정을 추가해준다.
...
rem   TITLE           (Optional) Specify the title of Tomcat window. The default
rem                   TITLE is Tomcat if it's not specified.
rem                   Example (all one line)
rem                   set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
rem ---------------------------------------------------------------------------

setlocal
set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=en"

web.xml 수정하기

  • 톰캣에 인코딩 필터 를 추가하는 부분이다.
  • 아래의 내용은 톰캣에 이미 있으므로 주석만 해제해주면 된다.
<!-- The mapping for the Set Character Encoding Filter -->
<filter-mapping>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <async-supported>true</async-supported>
</filter>
반응형
저작자표시 비영리 (새창열림)

'Java > 톰캣 (Tomcat)' 카테고리의 다른 글

톰캣에서 지원하는 HttpSession 이란? (feat. Servlet API)  (0) 2023.04.20
web.xml 에서 사용하는 absolute-ordering 이란?  (0) 2023.03.20
web.xml 파일이란? 그리고 web.xml 파일의 역할  (0) 2023.03.20
자바 서블릿(Servlet) 이란?  (0) 2023.03.20
WEB-INF 디렉토리란?  (0) 2023.03.20
    'Java/톰캣 (Tomcat)' 카테고리의 다른 글
    • 톰캣에서 지원하는 HttpSession 이란? (feat. Servlet API)
    • web.xml 에서 사용하는 absolute-ordering 이란?
    • web.xml 파일이란? 그리고 web.xml 파일의 역할
    • 자바 서블릿(Servlet) 이란?
    Jake Seo
    Jake Seo
    ✔ 잘 보셨다면 광고 한번 클릭해주시면 큰 힘이 됩니다. ✔ 댓글로 틀린 부분을 지적해주시면 기분 나빠하지 않고 수정합니다. ✔ 많은 퇴고를 거친 글이 좋은 글이 된다고 생각합니다. ✔ 간결하고 명료하게 사람들을 이해 시키는 것을 목표로 합니다.

    티스토리툴바