[팁] 익스플로러6 에서 이미지를 출력하지 못할 때[PHP, C#(ASP.NET)]
2010년 06월 20일에 작성된 포스트입니다.

프로그래밍 관련 팁은 블로그에 올리지 않을 예정이었는데,
몇몇 부분은 히스토리를 쌓아놓지 않으면 안되겠네요.

이번 경우는 익스플로러 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 방식) : 원본이 삭제된 경우, 지원되지 않을 가능성이 높습니다.


현식로그 홈 목록

Copyright © HS LOG
Published on 6월 20, 2010 Filed under: Uncategorized; Tagged as: , , , , , , , ,

No Comments

방문해 주셔서 감사합니다. 답글을 남겨주시면 잊지 못할 것입니다.

현식로그 홈 목록

 
이 글의 방문자수는 200 입니다. (젯팩이 측정)