리눅스에서 설치하는 TOMCAT은 기본 인코딩이 UTF-8이 아니라서 설정 해주지 않으면 한글이 깨져나온다.
아래의 내용은 TOMCAT 7.0.47 을 기준으로 작성하였다.
소스 레벨의 처리
HTML
- HTML5의 경우
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"/> ...
- 그 외
... <head> <META HTTP-EQUIV="contentType" CONTENT="text/html;charset=UTF-8"> ...
Servlet
- doPost() 나 doGet() 안에
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); // 파라미터 받는 부분 utf-8 사용 String keyword = request.getParameter("keyword"); String urlEncodedKeyword = URLEncoder.encode(keyword,"utf-8");
JSP
- 페이지 상단 지시자 지정 부분에
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
서버 설정 처리
server.xml
TOMCAT/conf 에 있는 server.xml 의 connector 지정 부분(70행 쯤에 있다)에 아래와 같이 URIEncoding를 추가하여 지정해준다.
setenv.sh
TOMCAT/bin 디렉토리에 setenv.sh 라는 파일을 새로 만들어 아래 내용 추가하여 기본 파일 인코딩을 utf-8로 지정해 주고 TOMCAT 재시작
#!/bin/bash
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=\"utf-8\""
이렇게 하면 되는 이유는 TOMCAT/bin/catalina.sh 를 열어보면 알 수 있다.
약 23행 정도에 아래와 같은 내용이 있다.
TOMCAT 실행 관련 환경변수는 직접 catalina.sh 에 추가하지 말고, TOMCAT/bin/setenv.sh 에 작성하라고 되어 있다. 실제 스크립트에 setenv.sh를 체크하는 부분이 작성되어 있다.
댓글 없음:
댓글 쓰기