URL을 이용해서 JPG 파일을 저장하려고 합니다.

 

그런데 JPG 파일이 한글로 되어 있어서 URLEncoder를 사용하여 저장하고 있습니다.

 

그런데 특정상황에서 저장이 되지 않아서 문제점을 확인해본 결과

 

파일 이름에 공백이 있는 경우

 

%20으로 변환하는 것이 아니라 + 로 변환을 하는 것이였습니다.

 

테스트 중에 +를 %20으로 변환해보니 정상적으로 다운이 받아졌습니다.

 

어떻게 하면 +가 아닌 %20으로 변환을 바로 할 수 있죠?

 

사용 코드는 다음과 같습니다.

 

    String fileName = fileURL.substring(startIndex+1, endIndex);
    fileName = URLEncoder.encode(fileName);
    //fileName = fileName.replace("+", "%20");
    
    String extName = fileURL.substring(endIndex);
    fileURL = fileURL.substring(0, startIndex+1) + fileName + extName;
        
    URL url = new URL("fileURL);
    URLConnection conn = url.openConnection();
    conn.connect();
        
    int nSize = conn.getContentLength();
    BufferedInputStream bis = new BufferedInputStream(conn.getInputStream(), nSize);    
    bitmap = BitmapFactory.decodeStream(bis, null, Variable.BITMAP_OPTION);