프로그래밍 관련 팁은 블로그에 올리지 않을 예정이었는데,
몇몇 부분은 히스토리를 쌓아놓지 않으면 안되겠네요.
이번 경우는 익스플로러 6에서 한글 파일명( 예) HS LOG.jpg )을 출력하지 못하는 경우입니다.
웹 서버에 들어가는 이미지는 왠만한 경우는 당연히 영문이름으로 되어있어야 하는 것이
옳다고 생각하지만 사용자가 게시판 등에 올린 파일이 다 영문일 수도 없고,
한글로 올렸는데 파일명을 마음대로 변환하기에는 UI 를 헤치는 요소가 될 수 있기 때문에
한글 이름으로 웹서버에 남겨놓고는 하는데요.
이 한글 이름으로 된 이미지 파일이
파이어폭스, 크롬, 오페라와 익스플로러 7 이상에서는 잘나오지만
익스플로러 6에서 나오지 않을 때가 있습니다.
결국은 캐릭터셋 문제이고, 이런 문제가 발생한 것이 최근에만 2번이네요.
전혀 다른 두 가지 체제,
C#(ASP.NET)-IIS-Windows와 PHP-Apache-Linux 에서
문제가 일어났습니다.
캐릭터셋이 문제의 원인임을 알 수는 있지만
한 쪽은 UTF-8 이었고, 한 쪽은 EUC-KR 이라서
이 문제의 아주 정확한 발발원인은 알 수가 없었습니다.
더 웃긴 건 UTF-8 을 캐릭터셋으로 채택한 사이트는 대부분의 페이지가 다 멀쩡한데
몇 페이지에 한해서 이 문제가 발생하였습니다.
때문에 이 해결책이 제대로 된 해결책이 아닐 수도 있다는 생각이 듭니다.
문제의 정확한 원인과 해결책이 있다면 답변으로 받습니다.
결국 문제는 다음과 같이 해결되었습니다.
파일명을 인코딩해주는 것… ^^;
C#(ASP.NET) 에서는 다음과 같이 해결 할 수 있습니다.
Server.UrlEncode(“문자”).Replace(“+”, “%20”);
인코딩 후 “+” 기호를 %20 으로 변환해주어야 합니다.
PHP를 다루시는 분은
상당히 많이 사용하는 함수로 대체적으로 아시겠지만
다음과 같이 해결 할 수 있습니다.
urlencode(“문자”);
좋은 시간 되십시오.
감사합니다.
매우 오래된 영상(object 방식) : 원본이 삭제된 경우, 지원되지 않을 가능성이 높습니다.