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" />
'이전것 > JAVA' 카테고리의 다른 글
자바 charAt(), indexOf(), substring(), length() 정리 (0) | 2017.07.13 |
---|---|
JAVA JSP JDBC JDBC 사용 예제 (0) | 2017.04.20 |
java 자바 공백 제거 문자열 replaceAll (0) | 2017.04.19 |
JAVA String Null Check 자바 스트링 널 체크 (0) | 2017.04.13 |
Context Context Context Context Context (0) | 2017.02.10 |