1. 한글이 깨지는 이유 1(HTML, charset, data 포멧 관련)
(1) HTML : ANSI, CHARSET : UTF-8, DATA : ANSI - > HTML태그 깨짐, 한글 깨짐
(2) HTML : ANSI, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 깨짐, 한글 정상
(3) HTML : UTF-8, CHARSET : UTF-8, DATA : ANSI - > HTML태그 정상, 한글 깨짐
(4) HTML : UTF-8, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 정상, 한글 정상
(5) HTML : ANSI, CHARSET : EUC-KR, DATA : ANSI - > HTML태그 정상, 한글 깨짐
(6) HTML : ANSI, CHARSET : EUC-KR, DATA : UTF-8 - > HTML태그 정상, 한글 정상
(7) HTML : UTF-8, CHARSET : EUC-KR, DATA : ANSI - > HTML 태그 정상, 한글 깨짐
(8) HTML : UTF-8, CHARSET : EUC-KR, DATA : UTF-8 -> HTML태그 정상, 한글 깨짐
정상적으로 데이터를 출력하려면
HTML : UTF-8, CHARSET : UTF-8, DATA : UTF-8
또는
HTML : ANSI, CHARSET : EUC-KR, DATA : UTF-8
을 써야 하지만 요즘 UTF-8의 사용이 늘어나는 추세이기 때문에 UTR-8을 사용하는 것이 좋다.
2. 한글 완벽출력 조건 -.- (출처 : http://okjsp.pe.kr/seq/72792)
1. 모든 문서는 UTF-8 인코딩으로 저장되어야 함.
2. jsp 파일 상단에 <%@ page contentType = "text/html;charset=utf-8" %>
3. 서블릿은 request.setCharacterEncoding("utf-8")
4. 자바스크립트에서 encodeURIComponent("get방식한글") 처리
5. server.xml에서 Server - Service - Connector 엘리먼트에 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" />
6. HttpURLConnection 을 통하여 UTF-8 로 된 URL 을 읽을 경우.
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
로 변경
7. jsp -> bean 데이터 전송은 문제 없지만 jsp -> jsp 에서 한글이 깨진다면 받는 부분에서
String test = request.getParameter("test ");
test = new String(test .getBytes("8859_1"), "UTF-8");
처럼 변환해서 저장.8. MySQL DB역시 기본으로 UTF-8 세팅이 되어있어야 함
9. 서블릿(java)에 response.setContentType("content=text/html; charset=UTF-8"); 가 있는것이 좋다.
3. 이클립스 한글 출력 조건
2번의 방법대로 하면 데이터 UTF-8과 CHARSET의 UTF-8은 설정할 수 있지만
HTML 파일 인코딩이 UTF-8이 아니므로 깨짐현상이 발생한다.
이클립스에서 작업시, 환경설정의 GENERAL에서 WORKSPACE의 Text Encoding을 UTF-8로 바꾸어 주어야 한다.
* 1) 혹시 위의 사항을 어겼는데도 한글이 잘 나올지라도 방법이 잘못되었기 때문에
PDF로 파일을 변환 할 때, 한글이 깨져서 나온다.
'웹 개발' 카테고리의 다른 글
wkhtmltopdf의 footer-html속성 사용시 쪽번호 문제 (0) | 2019.08.11 |
---|---|
pageBreak (다음 페이지로 넘기기) (0) | 2019.08.11 |
JSP 페이지 이동 4가지 방법 및 특성 (0) | 2019.08.11 |
Spring Framework Project에서 DataBase 사용 (0) | 2019.08.11 |
[spring] 생성자 혼동 피하기 (0) | 2019.08.11 |