너와 나의 프로그래밍
Spring Framework - 파일 다운로드 구현 시 다국어(글자) 깨지는 현상 본문
Back-End/Spring Framework
Spring Framework - 파일 다운로드 구현 시 다국어(글자) 깨지는 현상
Whatever App's 2019. 1. 3. 17:22
[Spring] 다운로드 구현 시 다국어 깨지는 현상
파일 다운로드 구현 시 다국어가 깨지는 현상이 발생했다.
예를들어 브라우저의 언어가 한글인데 파일 이름이 일본어로 되어있는 파일을 다운로드 할 때 정상적으로 UTF-8을 지원하지 않아
정상적으로 다운로드를 못하는 현상이 있었는데, 그때마다 브라우저의 locale을 바꾸면 해결 가능했지만,
그렇지 않은 경우가 있어 해결하였다.
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
29
|
String FileName = ""; // 파일 이름 구하기
// 브라우저 별로 체크
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) {
return "Opera";
} else if (header.indexOf("Trident/7.0") > -1){
return "MSIE";
} else{
return "Firefox";
}
}
// 브라우저 별로 체크하여 UTF-8로 만들기
if (getBrowser(request).indexOf("Firefox") < 0) {
FileName = URLEncoder.encode(saveFileName, "UTF-8").replaceAll("\\+", "%20").replaceAll("%2B", "+").replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%40", "@");
} else {
FileName = new String(saveFileName.getBytes("UTF-8"), "8859_1");
}
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"" + FileName + "\";");
|
cs |
반응형
'Back-End > Spring Framework' 카테고리의 다른 글
Spring Framework - Spring AOP의 개념과 용어 (0) | 2020.07.27 |
---|---|
Spring Framework - Annotation 기반 설정 - 2 (0) | 2020.07.12 |
Spring Framework - Annotation 기반 설정 - 1 (2) | 2020.07.11 |
Spring Framework - 의존성 주입 방식 (0) | 2020.07.08 |
Spring Framework - 스프링 컨테이너(Spring Container) (0) | 2020.07.06 |