너와 나의 프로그래밍

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

 

반응형