첨부파일 다운로드 시 공백이 '+' 가 되는 현상 해결
현재 개발하고 있는 시스템에서 첨부파일을 다운로드할 경우 공백이 '+' 로 바뀌어서 저장이 됩니다.
예를들어
"불친절한 자수씨의 블로그.pdf"
라는 파일이라면
"불친절한+자수씨의+블로그.pdf"
라는 파일로 저장이 됩니다.
원인은 한글 파일명을 지원하기 위해 URLEncoder 를 사용하는데, 이것이 공백을
'+'
로 만드는 범인이였습니다.
기존 방식은 아래와 같았을 것 입니다.
개선 방법은 URLEncoding 후
'+'
로 변경된 공백을
'%20'
으로 다시 변경합니다.
'+'
는 정규식의 수량을 나타내는 것이기 때문에 역슬래쉬가 앞에 붙어야 합니다.
원래 있던
'+'
가 걱정되시는 분들은 걱정할 필요가 없습니다.
URLEncoder.encode() 메소드에 의해
'%2B'
로 변환이 됩니다.
어떻게 생각해보면 쉬운 것이였는데 신경을 못 쓰다보니 불편함을 안고 살았던 것 같습니다.
댓글
댓글 쓰기