일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- #오라클 데이터 복구
- javascript 낙타
- eclipse properties
- 팝업 종료
- Spring Annotation
- 엑셀 UPDATE
- css 말줄임
- 전화번호 형식 자동 변환
- jquery_cheat_sheet #jquery_quick_api_reference
- 근무날짜 경력계산
- eclipse 다국어
- 스킵 네비게이션
- javascript Camel
- JSP Standard Tag Library (JSTL) Tutorial
- 폴더만 남기고 파일만 삭제
- jquery_api #jquery #api
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- 여러줄 한줄로
- 뒤로가기 방지
- ajax 배열
- eclipse 폰트
- 탭과 클릭 focus 이벤트 구분
- 트리거 이벤트
- taglib 만들기
- 허드슨 포트 변경
- i_tail
- jQuery 백스페이스
- 화면보호기 실행 방지
- ajax 배열 파라미터
- 시퀀스 초기화 프로시져
- Today
- Total
Hi~ Summers!!
한글 파일 다운로드 시 깨지는 문제 본문
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\""+fileName+"\"");
이렇게 다운로드 시 한글이 깨지거나 빠지는 현상이 발생한다.
클래스 하나를 만들어서 아래 메소드를 하나 생성한 뒤 파일명을 변경하면 된다.
public static String encodeStrToUTF8(String str){
StringBuilder sb = new StringBuilder();
byte[] btArray = str.getBytes(Charset.forName("UTF-8"));
for(int i = 0 ; i < btArray.length ; i++)
{
short c = (short) ((short)btArray[i] & 0x00ff);
if(c == '%' || c == ' ' || c == ' ')
{
sb.append(String.format("%%%02x", c));
}
else if(c < 128)
{
sb.append(String.format("%c", c));
}
else
{
if(i+2 < btArray.length)
{
sb.append(String.format("%%%02X%%%02X%%%02X", btArray[i], btArray[i+1], btArray[i+2]));
i+=2;
}
}
}
return sb.toString();
}
[완성예제]
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\""+StringUtil.encodeStrToUTF8(fileName)+"\"");