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