Tomcat encoding


1. GET

Tomcat Connector 항목(HTTP, AJP)의 URIEncoding 속성

 

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>


2. POST

HTTP 요청의 Header에서 Context-Type 항목의 charset 속성값

 

...

Context-Type: text/html; charset=ISO-8859-1

 

 

<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>

 

3. JSP

 

<%@page contentType="text/html; charset=UTF-8" %>


4. Response

 response.setContentType("text/html; charset=UTF-8") 이나  response.setCharacterEncoding("UTF-8")

 

 

한글 코드 문제와 해결방법

<%@ page contentType="text/html; charset=EUC_KR" %>
<%@ page contentType="text/html; charset=EUC_KR" %> ...
<% String userId = new String(request.getParameter("id").getBytes("Cp1252"), "EUC_KR");
...

JSP에서 Beans 사용하기<jsp:setProperty>

JSP 문서 <jsp:useBean id="user" class="User" scope="page"/>
<jsp:setProperty name="user" property="*"/>
<% user.toKorean(); %>
User Bean (User.java) import java.io.*;
import CharacterSet;
public class User {
private String id;
private String password;
public void setId(String str) { id = str; }
public void setPassword(String str) { password = str; }
public String getId() { return id; }
public String getPassword() { return password; }
public void toKorean() {
id = CharacterSet.toKorean(id); } }
CharacterSet 클래스 (CharacterSet.java)
import java.lang.*; import java.io.*;
public class CharacterSet {
public static String toKorean(String str) { try
{ return new String(str.getBytes("Cp1252"), "EUC_KR");
} catch (UnsupportedEncodingException e) { return null; } } }

Web.xml

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>euc-kr</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Server.xml

톰캣 인코딩 설정해야 하는 경우

설정파일

###############################################

/usr/local/share/jakarta-tomcat-5.0.19/conf/web.xml charset추가

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=euc-kr</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=euc-kr</mime-type>
</mime-mapping>

###############################################

/usr/local/apache/conf/httpd.conf 아래 두줄 추가

AddCharSet EUC-KR .euc-kr
AddDefaultCharSet EUC-KR

http://blog.daum.net/turnnig-pointer/15380579