개발을 하다보면 캐릭터셋문제로 골머리를 앓는 경우가 많이 있다. 필자는 그래서 신규로 프로젝트를 시작할 경우 아예 모든 환경을 UTF-8로 셋팅해 버린다. 물론 UTF-8까지 필요가 있을까 하는 생각을 할 수도 있지만 나중에 다국어환경을 고려해도 아예 UTF-8로 시작하는게 나쁜 방법은 아닌것 같다.
다음은 UTF-8로 개발환경을 셋팅하는 방법이다.
1. 이클립스의 Content type을 UTF-8로 설정
- 이렇게 설정하면 해당하는 type을 파일로 저장할 때 UTF-8형식으로 저장하게 된다.
2. Workspace의 Text file encoding을 UTF-8로 선택
- 이렇게 설정해야 svn의 소스비교시 캐릭터셋이 깨지는 문제를 막을 수 있다.
3. 데이터베이스 인스턴스를 UTF-8형태로 생성
- Mysql같은 경우 아래와 같은 방식으로 생성하면 된다.
CREATE DATABASE database_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
4. web.xml에 아래와 같이 인코딩 필터 셋팅
- 서블릿과 통신할 때 데이터를 주고 받는 것에 대한 인코딩을 설정하는 부분이다.
<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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</filter>
5. 톰캣설치디렉토리의 /conf/server.xml 에 URIEncoding 항목 추가
- WAS와 get방식으로 데이터를 주고받는 것에 대한 인코딩 설정부분이다.
<Connector port="8080" URIEncoding="UTF-8" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
6. JSP파일의 최상단에 UTF-8 directive 추가
- JSP컴파일시 사용할 인코딩을 설정하는 부분이다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
7. JSP파일의 meta태그에 UTF-8추가
- 브라우저에서 인식할 캐릭터셋을 설정하는 부분이다.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
8. 메이븐을 쓴다면 다음과 같이 plugin에 UTF-8 설정을 추가해 준다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<encoding>UTF-8</encoding>
<quiet>true</quiet>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
<configuration>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>1.5</targetJdk>
<minimumTokens>10</minimumTokens>
</configuration>
</plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<encoding>UTF-8</encoding>
<quiet>true</quiet>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
<configuration>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>1.5</targetJdk>
<minimumTokens>10</minimumTokens>
</configuration>
</plugin>
출처 http://avatar72.tistory.com/97
'Java' 카테고리의 다른 글
JavaScript와 Java를 이용한 웹어플리케이션에서 JSON을 이용한 통신방법을 보겠습니다 (0) | 2009.12.11 |
---|---|
자꾸 까먹는 3항 연산자. (0) | 2009.12.11 |
파일업로드 실습 (0) | 2009.11.28 |
iBatis 에서 테이블 생성 (0) | 2009.11.17 |
iBatis에서 테이블 생성하기 - 당근 퍼왔죠!! (0) | 2009.11.17 |