콘솔 한글 깨짐
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
아니요
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
아니요
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
예
[질문 내용]
여기에 질문 내용을 남겨주세요.
다른 프로젝트를 실행하면 콘솔에 한글이 안 깨지는데 해당 강의 대로 진행한 프로젝트는 한글이 깨집니다.
https://velog.io/@hsjung2015/Intellij-or-Eclipse%EC%BD%98%EC%86%94%EC%B0%BD%EC%97%90-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A0%B8%EC%84%9C-%EB%82%98%EC%98%AC%EB%95%8C-%EC%B5%9C%ED%9B%84%EC%9D%98-%EB%B0%A9%EB%B2%95
해당 사이트에 있는 3번까지 진행 했는데 한글이 깨지네여 ㅠㅠ
package hello.servlet.basic.request;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header")
public class RequestHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
printStartLine(request);
printHeaderUtils(request);
printEtc(request);
response.getWriter().write("ok");
}
private static void printStartLine(HttpServletRequest request) {
System.out.println("--- REQUEST-LINE - start ---");
System.out.println("request.getMethod() = " + request.getMethod());
System.out.println("request.getProtocol() = " + request.getProtocol());
System.out.println("request.getScheme() = " + request.getScheme());
System.out.println("request.getRequestURL() = " + request.getRequestURL());
System.out.println("request.getRequestURI() = " + request.getRequestURI());
System.out.println("request.getQueryString() = " +
request.getQueryString());
System.out.println("request.isSecure() = " + request.isSecure()); //https 사용 유뮤
System.out.println("--- REQUEST-LINE - end ---");
System.out.println();
}
private void printHeaderUtils(HttpServletRequest request) {
System.out.println("--- Header 편의 조회 start ---");
System.out.println("[Host 편의 조회]");
System.out.println("request.getServerName() = " +
request.getServerName()); //Host 헤더
System.out.println("request.getServerPort() = " +
request.getServerPort()); //Host 헤더
System.out.println();
System.out.println("[Accept-Language 편의 조회]");
request.getLocales().asIterator()
.forEachRemaining(locale -> System.out.println("locale = " +
locale));
System.out.println("request.getLocale() = " + request.getLocale());
System.out.println();
System.out.println("[cookie 편의 조회]");
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
System.out.println(cookie.getName() + ": " + cookie.getValue());
}
}
System.out.println();
System.out.println("[Content 편의 조회]");
System.out.println("request.getContentType() = " +
request.getContentType());
System.out.println("request.getContentLength() = " +
request.getContentLength());
System.out.println("request.getCharacterEncoding() = " +
request.getCharacterEncoding());
System.out.println("--- Header 편의 조회 end ---");
System.out.println();
}
private void printEtc(HttpServletRequest request) {
System.out.println("--- 기타 조회 start ---");
System.out.println("[Remote 정보]");
System.out.println("request.getRemoteHost() = " +
request.getRemoteHost()); //
System.out.println("request.getRemoteAddr() = " +
request.getRemoteAddr()); //
System.out.println("request.getRemotePort() = " +
request.getRemotePort()); //
System.out.println();
System.out.println("[Local 정보]");
System.out.println("request.getLocalName() = " + request.getLocalName()); //
System.out.println("request.getLocalAddr() = " + request.getLocalAddr()); //
System.out.println("request.getLocalPort() = " + request.getLocalPort()); //
System.out.println("--- 기타 조회 end ---");
System.out.println();
}
}
답변 1
0
안녕하세요. 김필준님, 공식 서포터즈 OMG입니다.
저의 경우 다음 링크(클릭)의 세번째 방법인 톰캣의 VM 옵션 방법으로 해결하였는데 확인해보시겠어요? 올리신 링크에는 소개되어 있지 않네요 ^^
해결이 안될 경우 첨부 드린 링크의 두번째 방법과 첫번째 방법(Transparent native-to-ascii conversion 도 체크)도 확인해주세요 😀
링크의 세가지 방법을 모두 시도하셔도 동일할 경우 링크의 인텔리제이 캐시 초기화 후, 인텔리제이 재 실행하여 확인해주세요!
감사합니다.
0
늦은 시간에 답변 감사합니다.
보내주신 링크에 3번째 방법을 진행하는데 에러사항이 있어서 질문드려요 ㅠㅠㅠㅠ
저는 톰캣 서버가 보이지 않는데 혹시 무료 버젼이라서 안 보이는건지... 궁금합니다
추가적으로 테스트 코드를 작성하는 공간에서 작성한 코드는 한글이 잘 나옵니다ㅠㅠㅠㅠ
그리고 이런 오류가 왜 발생하는지 대략적이라도 설명해주시면 감사하겠습니다.
1
내장 톰캣의 방법 링크를 첨부드려 설명드렸네요 ^^;
스프링부트 내장톰캣의 VM OPTION 설정을 하기 위한 방법은 다음과 같습니다.
인텔리제이 화면 우측 상단의 프로젝트명+Application (화면 표기)를 클릭 후
Edit Configuration..을 클릭해주세요.

입력은
Program arguments 영역에 해주세요.

추가 시도 방법
resources 프로젝트 하위의
application.properties 파일에 아래 코드를 추가하여 확인해주세요
server.servlet.encoding.force-response=true
오류 발생 원인
문자 인코딩 설정 문제 때문에 발생하는데요,
인텔리제이는 기본적으로 시스템의 기본 인코딩을 사용하는 반면 이 설정이 한글을 지원하는 인코딩(예: UTF-8)으로 되어 있지 않으면 한글이 제대로 표시되지 않을 수 있습니다.
감사합니다.
0
답변 너무 감사합니다!!!!
귀찮게해서 죄송합니다 ㅠㅠㅠ
Program arguments 영역 (혹시 몰라서 사진 첨부했습니다...ㅎㅎ)
말씀해주신 방법 적용 뒤 컴퓨터 재부팅하고 실행 결과 아직도 콘솔 창에 한글 깨짐 현상이 발생합니다.....
1
감사합니다 해결되었습니다 ㅎㅎㅎㅎ!!!
PDF 내용에 있는 해당 부분을 적용한 뒤
build.gradle 에 있는 다음 코드를 제거해도 된다. // providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
gradle 설정을 인텔리제이로 변경했더니 해결되었습니다 감사합니다 ㅎㅎ
servlet과 container에 대한 질문입니다
0
21
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
62
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
94
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
175
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
94
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
77
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
138
1
html 변경하는 부분 적용 문제
0
100
1
한글 깨짐
0
76
2





