1. GET으로 보낼때 한글깨짐
1) server.xml에 URIEncoding="EUC-KR" 이나 URIEncoding="UTF-8" 추가
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="EUC-KR"/>
2)<%@ page import="java.net.URLEncoder"%>
<% String eventTitle = URLDecoder.decode(request.getParameter("title"), "UTF-8"); %>
<javascript>
escape 함수 : ASCII 범위를 벗어난 문자열들을 ASCII 형식으로 변환.
encodeURI 함수 : ASCII 범위를 벗어난 문자열들을 URI 형식으로 변환. 단, '/'나 '?' 등 URI에서 사용하는 예약 문자 등은 변환하지 않는다.
encodeURIComponent 함수 : 기본적으로는 encodeURI 함수와 같지만 encodeURI 함수가 변환하지 않는 '/'나 '?' 등의 문자들까지 전부 변환한다.
2.POST로 보낼때 한글깨짐
모든 jsp와 servlet에서 request.getParameter를 호출하기전에 characterEncoding을 지정해줌
sevlet
- request.setCharacterEncoding("EUC-KR");
jsp
- <%@ page contentType="text/html;charset=utf-8" language="java" %>
이게 싫다면...
web.xml에 필터를 추가해준다
톰캣 6.0인경우 예제 경로는 apache-tomcat-6.0.18\webapps\examples
3. web.xml에 다음을 추가해준다
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC-KR</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3-1. 필터클래스를 만들어줌
SetCharacterEncodingFilter.java 을
프로젝트홈\WEB-INF\classes\filters\SetCharacterEncodingFilter
에 복사해서 넣어놓자.
-------------------------------------------------------------------------------------
◈ Tomcat에서 JSP파일의 한글깨짐 방지
1. Get방식으로 넘어가는 파라미터 한글인코딩하게 하는법
위치 : 'C:\java\Tomcat 5.5\conf\serverl.xml' 파일을 아래와 같이 변경.
URIEncoding="euc-kr" 를 추가 삽입 한후 저장
톰캣 재시작후 다시 확인 하면 됨.
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="euc-kr" />
2. JSP에서 엑셀로 출력시 한글깨짐현상
response.setHeader("Content-Disposition", "attachment; filename=export.xls");
response.setHeader("Content-Description", "JSP Generated Data");
response.setContentType("application/vnd.ms-excel");
<meta http-equiv="Content-Type" content="application/vnd.ms-excel;charset=euc-kr">
추가한다.
3. ContentType이"Text/html"이 아닐때 한글 인코딩(예 contentType="image/gif")
String aa = "한글~!!";
aa = new String(aa.getBytes("8859_1"),"euc-kr");
g.setFont(new Font("Gulim", Font.ITALIC, 15));
g.drawString("HelloWorld~!!", 10, 50);
g.drawString(aa, 10, 80);
4. jsp 페이지상단에 <%@ page contentType="text/html;charset=euc-kr" %>삽입
5. Post로 넘어온값 위에 아래 문장 선언(단 ,get 방식은 지원안함)
request.setCharacterEncoding("euc-kr");
'Jsp_Html' 카테고리의 다른 글
[Jsp] forward, location.href (0) | 2010.06.22 |
---|---|
[Jsp] ServletConfig, ServletContext (0) | 2010.06.17 |
[Jsp] 다중 국가 언어 설정 (0) | 2010.06.15 |
[Jsp] 패턴으로 필요한 문자 골라내기 (0) | 2010.06.15 |
[Jsp] JSTL 기본 문법 (0) | 2010.06.15 |