UTF-8 처리


1. export LANG=ko 또는 export LANG=ko_KR 와 같은 환경 설정

서버의 쉘을 설정하는 부분인데 LANG=UTF-8로 해야하나 이건 다른 프로그램에 영향을 줄 수 있기 때문에 가능한 안하는게 좋음..ㅋ


2. 서블릿 엔진의 file.encoding 값이 UTF-8, EUC_KR, KSC5601 중 하나가 되도록 함

서버 시작 스크립트에서 "java ... -Dfile.encoding=UTF-8 ..." 라고 지정

톰켓의 경우 catalina.sh(또는 bat)에 4군데 정도 있음


3. 서블릿에서 다음과 같은 request, response 인코딩 지정

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html; charset=utf-8");


4. JSP 첫째줄에 다음 라인 추가

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


5. GET 방식에서는 URL 인코딩 수행 (이것이 RFC 표준에 따르는 것이라고 함)

자바스크립트에서는 encodeURIComponent()

자바에서는 java.net.URLEncoder의 encode()


자바스크립트의 경우 다음 사이트 참고 http://mwultong.blogspot.com/2006/05/javascript-tools-decodeencode-uri.html


6. UTF-8 변환 함수 호출

public static String Kor2UTF8(String str) {

  if (str== null) {

    return null;

  }

  try {

    return new String(str.getBytes("8859_1"), "UTF-8");

  } catch (Exception e) {}

}


7. UTF-8로 파일 저장

울트라에디트 : 파일 -> 변환 -> ASCII를 UTF-8으로 (Unicode 편집)

에디트플러스 : 파일 -> 새이름으로 -> 인코딩을 UTF-8로 지정 또는 

                     문서 -> 인코딩 변경 로드 -> 인코딩 선택을 UTF-8로 지정

이클립스 : Windows->General->Workspace 에서 Text file encoding을 UTF-8로 지정 또는 파일을 선택하고 오른쪽 버튼 클릭->Properties에서 Text file encoding을 UTF-8로 지정 

이 때 한글이 깨지는 경우가 있음.  백업을 받아놓아야 함


서버에 올릴때는 바이너리로 올림


8. native2ascii -encoding UTF-8 test.xml test.xml 

native2ascii는 자바에 내장된 명령어로 위와 같이 하면 test.xml 파일을 UTF-8로 인코딩해줌

단, 한글은 \u001 ... 이런식으로 깨짐

따라서 에디터로 열어서 수정해주어야 함


9. HttpURLConnection을 이용한 HTTP 통신

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

10. 웹로직에서 UTF-8 처리

web.xml 에서 다음 추가

<web-app>

...

  <context-param>

    <param-name>weblogic.httpd.inputCharset./*</param-name>

    <param-value>UTF-8</param-value>

  </context-param>

...

</web-app>


weblogic.xml 에서 다음 추가

<weblogic-web-app>

...

  <jsp-descriptor>

    <jsp-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>

    </jsp-param>

  </jsp-descriptor>

...

  <charset-params>

    <input-charset>

      <resource-path>/*</resource-path>

      <java-charset-name>UTF-8</java-charset-name>

    </input-charset>

  </charset-params>

...

</weblogic-web-app>


11. 톰켓에서 UTF-8 처리

web.xml 에서 다음 추가하고 첨부 파일을 %CATALINA_HOME%/common/classes/filters 복사하면 된다고 함..ㅎㅎ

<web-app>

...

  <filter>

    <filter-name>Set Character Encoding</filter-name>

    <filter-class>filters.SetCharacterEncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>

    </init-param>

  </filter>

 

  <filter-mapping>

    <filter-name>Set Character Encoding</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

...

</web-app>


server.xml에서 다음과 같이 URIEncoding 추가

<Connector port="8080" maxHttpHeaderSize="8192"

    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

    enableLookups="false" redirectPort="8443" acceptCount="100"

    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />


블로그 이미지

잉비니

,