반응형
반응형
반응형
UTF-8 개발에 관한 정리입니다.

1. 모든 문서는 UTF-8 인코딩으로 저장되어야 합니다.

에디트 플러스의 경우 도구 -> 기본설정 -> 파일 부분에서 새 파일 형식을

UTF-8 로 해놓음으로써 새파일 작성시 UTF-8을 기본으로 작성할수 있고,

이미 다른 인코딩 타입에서 작성된 문서인 경우 내용을 모조리 Ctrl+C로 복사후

문서 -> 인코딩 변경 로드에서 UTF-8로 변경후 다시 붙여넣기 하면 됩니다.

 

이클립스의 경우 Package Explorer 에서 프로젝트에서 우측 버튼을 누른 후

Properties->Info->Text file encoding->Other 을 UTF-8 로 잡아주면 됩니다.

( 기존 다른 인코딩 타입에서 작성된 문서 내부 한글은 모조리 깨지게 됨 )

 

* ascii 로 작성된 자바스크립트 파일을 utf 문서에서 불러와 수행시킬 경우

자바스크립트 에러 나는 문제도 있더군요.(한글 주석이 영향을 줬을수도...)

 

2. jsp 파일 상단에는 다음과 같은 방식으로 UTF-8 설정합니다.

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

 

3. 서블릿은 다음과 같은 방식으로 UTF-8을 설정합니다.

request.setCharacterEncoding("utf-8")

 

4. 자바스크립트에서 encodeURIComponent 처리 및 톰캣 server.xml 의 설정 변경

위 1,2,3번의 방식으로 하면 post 방식의 데이터는 잘 받지만

get 방식의 데이터는 한글이 깨집니다.

이와 같은 경우 자바스크립트의 encodeURIComponent 함수와

server.xml 을 이용하여 처리하면 됩니다.

 

4.1 server.xml

톰캣 폴더의 conf 폴더에는 server.xml 파일이 존재합니다.

에디터로 열어보면

 

예)

    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

 

값이 약간 틀릴수 있지만 초기 셋팅 값이 보통 저러하고,

Connector 은 초기에 2개가 있는데 8080 포트 부분을 수정하면 됩니다.

수정하는 방법은

URIEncoding="UTF-8" 을 추가하면 됩니다.

 

예)

    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" />

 

위와 같이 했다고 해결되는 것은 아닙니다. get 방식으로 데이터를 전송하면

자바 파일에서 확인 했을 경우 물음표 값만 넘어옵니다.

 

get 방식으로 보낼 경우 자바스크립트로 변환을 해줍니다.

예를 들어 "한글"을 자바스크립트에서

<SCRIPT>alert( encodeURIComponent("한글") )</SCRIPT>

처럼 encodeURIComponent 함수로 변환하게 되면 %ED%95%9C%EA%B8%80 으로

변환됩니다. 이 값을 주소에 "한글" 대신에 넣게 되면 자바에서 알아서 잘~ 받습니다 ^^

 

5. HttpURLConnection 을 통하여 UTF-8 로 된 URL 을 읽을 경우.

다른 부분은 동일하고, 

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

로 변경합니다.

 

6. jsp -> bean 데이터 전송은 문제 없지만 jsp -> jsp 에서 한글이 깨진다면

받는 부분에서

 String test = request.getParameter("test ");

 test = new String(test .getBytes("8859_1"), "UTF-8");

처럼 변환해서 저장합니다.

 

ps. 참고 사이트

http://cafe.naver.com/phpinfo.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=434


반응형

'프로그래밍 > Java' 카테고리의 다른 글

JSTL fmt  (0) 2009.02.11
배열 정렬.  (0) 2009.02.11
Request 내부 객체  (0) 2009.02.11
JSP 액션, 선언, 스크립트릿  (0) 2009.02.11
파일 다운로드 구현할때 한글 이름 깨지는 문제..  (0) 2009.02.11
반응형
set tenc=korea
set enc=utf-8

~/.vimrc 파일
반응형

'OS > Linux' 카테고리의 다른 글

쉘바꾸기  (0) 2009.02.11
scp 파일 가져오기.  (1) 2009.02.11
tar 압축  (1) 2009.02.11
[VI] vi 한글깨짐 현상  (1) 2009.02.11
[VI] vi 색상 바꾸기 - vim 파일(putty.vim)  (1) 2009.02.11
반응형

XMLHttpRequest 는 UTF-8 통신이다.


==================================

server 가 php 일때...

server file 에서..

header("content-type:text/xml; charset=utf-8");
header("Cache-Control:no-cache");
header("Pragma:no-cache");

추가한다.

client 에 response 할때 iconv 를 이용해서 euc-kr 을 utf-8 로 인코딩해서 전달한다.

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

파일 크기 구하기(단위별)  (0) 2009.02.11
form 에서 method get 안될때..  (0) 2009.02.11
require 와 include 의 차이점  (0) 2009.02.06
정규표현식  (0) 2009.02.06
어제 날짜 구하기  (0) 2009.02.06

+ Recent posts