JSP euc-kr 한글 깨짐
페이지 정보
본문
1. 페이지 표시 설정
처음으로 각 jsp파일 상단에 아래의 코드를 추가한다.
<%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%>
2. POST 방식으로 전송시 한글 깨지는 경우
<% request.setCharacterEncoding("EUC-KR"); %>
3. GET 방식으로 전송시 한글 깨지는 경우
URIEncoding="euc-kr"을 추가
# vi /usr/local/tomcat/conf/server.xml
<Server ...
...
<Service ...
...
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="KSC5601" />
...
Tomcat 실행
# /usr/local/tomcat/bin/startup.sh
또는 (아래것은 apache 연동해서 사용할 경우)
# service tomcat5 restart
# service httpd restart
4. 수동 인코딩 및 디코딩
① 자바에서는 한글은 유니코드 방식을 사용
UTF-16 인코딩 방식으로 2바이트를 이용하여 하나의 문자를 표현
② 일반적인 웹에서는 다른 한글 인코딩 방식을 사용
웹에서 사용하는 문자열 인코딩 방식을 KSC5601 과 EUC_KR (euc-kr)
③ 한글 웹브라우저의 한글 방식 : KSC5601 방식
KSC5601 웹에서 통용되는 x-www-form-urlencoded 형식으로 변환하여 전송
④ 서블릿은 ISO-8859-1 인코딩 방식 사용
서블릿은 라틴어 표준 인코딩 방식인 ISO-8859-1으로 웹 인코딩 되었다고 간주하여 한글을 처리하므로 한글 깨짐
⑤ 해결책
String name = request.getParameter("name"); // 폼에서 가져오기
String name = new String(rs.getString("name").getBytes("8859_1"),"KSC5601"));
5. JDBC 연결방법을 변경
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=UTF-8","root","root");
6. mysql 에서 DB table 생성시
CREATE TABLE `bbs`.`freeboard` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL DEFAULT '',
`email` VARCHAR(45),
`subject` VARCHAR(50) NOT NULL DEFAULT '',
PRIMARY KEY(`id`)
)ENGINE=MyISAM DEFAULT CHARSET="euckr";
참고자료
http://parkbear01.springnote.com/pages/3715167#toc_6
http://godofcode.tistory.com/285
처음으로 각 jsp파일 상단에 아래의 코드를 추가한다.
<%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%>
2. POST 방식으로 전송시 한글 깨지는 경우
<% request.setCharacterEncoding("EUC-KR"); %>
3. GET 방식으로 전송시 한글 깨지는 경우
URIEncoding="euc-kr"을 추가
# vi /usr/local/tomcat/conf/server.xml
<Server ...
...
<Service ...
...
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="KSC5601" />
...
Tomcat 실행
# /usr/local/tomcat/bin/startup.sh
또는 (아래것은 apache 연동해서 사용할 경우)
# service tomcat5 restart
# service httpd restart
4. 수동 인코딩 및 디코딩
① 자바에서는 한글은 유니코드 방식을 사용
UTF-16 인코딩 방식으로 2바이트를 이용하여 하나의 문자를 표현
② 일반적인 웹에서는 다른 한글 인코딩 방식을 사용
웹에서 사용하는 문자열 인코딩 방식을 KSC5601 과 EUC_KR (euc-kr)
③ 한글 웹브라우저의 한글 방식 : KSC5601 방식
KSC5601 웹에서 통용되는 x-www-form-urlencoded 형식으로 변환하여 전송
④ 서블릿은 ISO-8859-1 인코딩 방식 사용
서블릿은 라틴어 표준 인코딩 방식인 ISO-8859-1으로 웹 인코딩 되었다고 간주하여 한글을 처리하므로 한글 깨짐
⑤ 해결책
String name = request.getParameter("name"); // 폼에서 가져오기
String name = new String(rs.getString("name").getBytes("8859_1"),"KSC5601"));
5. JDBC 연결방법을 변경
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=UTF-8","root","root");
6. mysql 에서 DB table 생성시
CREATE TABLE `bbs`.`freeboard` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL DEFAULT '',
`email` VARCHAR(45),
`subject` VARCHAR(50) NOT NULL DEFAULT '',
PRIMARY KEY(`id`)
)ENGINE=MyISAM DEFAULT CHARSET="euckr";
참고자료
http://parkbear01.springnote.com/pages/3715167#toc_6
http://godofcode.tistory.com/285
댓글목록
등록된 댓글이 없습니다.