자바기반의 스프링으로 뭔가를 개발하다보면 한글 깨짐 현상을 접할 수 있다. 개발을 업으로 하는 사람들의 경우 이 문제에 항상 곤혹을 치르곤 한다. 자바 스프링에서 한글 깨짐 현상은 인코딩의 문제일 수 있다. 파일이나 환경설정을 utf-8로 인코딩 변경을 해 준 후 테스트를 해 보면 정상적으로 실행이 된다. 물론, 이 문제는 비영어권국가라면 겪는 문제이기도 하다.
자바 스프링 한글 깨짐 utf-8 인코딩 변경하기
java spring utf-8 encoding
자바 스프링에서 한글을 표시하기 위한 방법은 3가지가 있지만, 서버환경이나 개발환경에 따라 변환할 필요가 없을 때도 있다.
먼저 이전에 스프링 프로젝트를 만드는 포스팅을 한 적이 있다.
한글이 깨진 현상을 확인했고 이번엔 이것을 해결해 본다.
프로젝트의 텍스트 파일들을 utf-8로 바꾸기
해도 되고 안해도 되는 부분이다. 이클립스나 이클립스 기반의 STS 의 문자열은 MS949를 기본으로 따르고 있다.
그렇기에 환경설정이나 웹페이지의 설정을 강제 utf-8로 변경해 주는 것이 더 나을 수도 있다.
STS를 실행한다.
프로젝트를 선택하고 마우스 오른쪽 버튼을 클릭하자.
메뉴 맨 마지막에 Properties 를 클릭한다.
Properties 창을 나타내는 단축치는 Alt + Enter 이다.
중간 부분을 보면 Text file Encoding 이 있다. Other 부분을 선택한 후 UTF-8 로 변경해 준다.
Apply and Close 버튼을 클릭하면 프로젝트 내 파일들이 utf-8 로 변경되고 완료후 창이 닫힌다.
web.xml 에 설정 추가하기
스프링으로 만든 프로젝트를 살펴보면 web.xml 이 있다.
이 부분에 utf-8로 강제로 설정하는 코드를 넣으면 된다.
web.xml 위치는 아래와 같다.
<!--
문자열 utf-8 강제 인코딩
프로젝트 > src > main > webapp > WEB-INF
-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
html 파일에 utf-8 인코딩 속성 추가하기
모든 웹언어가 그렇듯 모든 html 파일에 utf-8 인코딩 속성을 추가한다.
서버 환경에 따라 해도 되고 안해도 되지만, 가급적 해 주는 것이 좋다.
어떤 환경에서 접속할지도 모르며, 사이트를 접속한 사용자에게 한글이 깨지는 경우가 발생할 수도 있다.
지금은 거의 의무적으로 하고 있기도 하다.
가장 위에 있는 jstl 구문 3줄과 meta 태그에 utf-8이 설정된 것을 확인하자.
이정도만 해주면 한글이 깨지는 것에 대한 대비는 충분하다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>
안녕하세요 여려분~
</h1>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>
결과화면
한글이 제대로 나오는 것을 알 수 있다.
이제부터는 개발만 하면 된다.
'programming > SpringJava' 카테고리의 다른 글
자바 정규식 사용 html 태그의 모든 속성 제거 (0) | 2021.03.26 |
---|---|
자바 스프링 동작 순서 Controller Service DataAccess (0) | 2021.03.24 |
java StringBuilder 자바에서 문자열을 동적으로 처리하기 (0) | 2021.03.22 |
자바 스프링 프레임워크 프로젝트 만들기 (0) | 2021.03.20 |
자바 프로젝트를 메이븐 프로젝트 변환하기 How to convert Java Project to Maven Project (0) | 2021.03.19 |
댓글