Spring 환경에서 작업을 하다보면 다들 한번쯤은 문자가 깨지는걸 경험해 봤을 거라 생각한다. 그러면 당연히 어딘가 Encoding 설정이 안되어 있는 것일텐데, 어디를 손대야 하는지 정리해본다.
Eclipse(or STS)의 workspace Encoding 설정
JSP file의 Encoding 설정
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
web.xml 의 Encoding filter 설정
<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>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
DB(여기선 Oracle)의 Encoding 설정
sqlplus을 켜고 다음 명령어를 순서대로 실행해서 DATABASE의 encoding 설정을 utf-8로 변경한다.
conn system/패스워드 as sysdba
update sys.props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET';
update sys.props$ set value$='AL16UTF16' where name='NLS_NCHAR_CHARACTERSET';
commit;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set JOB_QUEUE_PROCESSES=0;
alter database open;
alter database character set INTERNAL_USE AL32UTF8;
alter database national character set INTERNAL_USE AL16UTF16;
shutdown immediate;
startup
'스프링' 카테고리의 다른 글
Spring ComponentScan 역할과 설정 (0) | 2020.12.24 |
---|---|
IoC(Inversion of Control) 제어의역전 과 IoC Container (0) | 2020.11.27 |
DI(Dependency Injection) 의존성 주입 (0) | 2020.11.26 |