질문 Q #10506
download helper로 다운로드시 한글깨짐
다클템 2013-05-07 11:01:07
 다운로드를 할때 한글 파일 명이 uri 로 넘어 가게 했습니다.
"/index.php/download/download_file/가나다라마.jpg/FE1334625480.jpg/" 이렇게 넘어가게 되는데요
익스, 크로 에서는 한글이 안깨지는데요 파이어 폭스,사파리 등에서는 한글이 깨집니다
그래서 urldecode() 함수를 사용한면 사피리 쪽에서는 안깨는데요 익스에서는 깨져 버립니다.
어떻게 방법이 없을까요?

답변 3
#1 변종원(웅파) 2013-05-07 13:34:36
urlencode() 해서 넘기는게 좋습니다. 받을때 urldecode() 해주구요.

무슨 이유때문에 한글파일명을 보이게 하려는지는 모르겠는데(별다른 이유가 없을 것 같은데..)
브라우저에 따라 자동으로 urlencode()처리를 하기도 합니다.

한글파일명이 깨져서 다운로드가 작동안하는 것이라면 첫줄에 쓴것처럼 처리하세요.
#2 다클템 2013-05-07 13:40:35
 간혹 자신이 올린 파일과 파일 명이 다르다고 태클 거시는 분이 있습니다.
말씀 하시대로 urlencode() 해서 넘기고 urldecode() 받아도 문제가 생겨서
브라우저 버전을 체크 해서 나누어 버렸습니다.
#3 변종원(웅파) 2013-05-07 14:49:26
다클/ 그렇다면 로직이 좀 이상한겁니다.

보통 다운로딩을 하는 컨트롤러에 파일명을 전달하여 처리하지 않고 해당파일의 번호를 넘기고
그 안에서 파일명 가져와서 euc-kr로 변환후 다운로드처리합니다.

사용자가 파일명이 다르다고 태클을 걸 여지 자체가 없는거죠.

한글을 주소에 넘기는 프로세스라 문제가 되는거죠. ^^;