2011-05-16 9 views
0

이스케이프 처리 된 utf-8 문자 (p % C3 % 83 % C2 %)가 포함 된 이미지 URL을로드하려고하면 플래시 (10.x 이상) 및 ie (7,8,9) A5) 문자를 두 번 또는 세 번 인코딩해도 URL 요청을하기 전에 문자가 해독됩니다. 이걸 막을 수있는 방법이 있나요? (이스케이프가있는) url이 실제로 원하는 것입니다.즉 플래시에서 utf-8 URL을 디코딩하는 것을 방지하려면 어떻게해야합니까?

문제는 플래시가 요청하려고 시도하지만 (즉, 다시 디코딩하려고하는) 인코딩 된 URL에 대한 utf-8 디코딩 된 url 요청에 대해 301의 http 상태를 제공하고 있기 때문에 무한 루프에 걸렸습니다. 301 + ie 자동 해독.

수정, 추가 코드 샘플 :

var url:URLRequest = new URLRequest('http://mydomain.com/p%C3%A5.jpg'); 
var loader:Loader = new Loader(); 
loader.load(url); 

는 지금은 요청이 http://mydomain.com/p%C3%A5.jpg로 라인을 통해 가고 싶어 (그리고 다른 브라우저에서 않습니다)하지만 IE에서이 http://mydomain.com/PA로 라인을 통해 간다 ¥

편집을 .JPG :

: 나는 또한 (이 %를 인코딩 더블) %, 25 %를 교체하는 (좋은) 제안을 시도했지만 문제가 해결되지 않은, 그냥 와이어를 통해 갈이 요청을 발생

http://mydomain.com/p%25C3%25A5.jpg

+0

는 소리가 난다. 요청을 만드는 플래시 코드 게시 –

+0

좋은 아이디어, 코드를 추가했습니다. – Shizam

+0

IE는 URL을 해독 할뿐만 아니라 잘못 해독 할 가능성이 큽니다. UTF-8 일 때 Windows 기본 인코딩 (ish)을 사용합니다. 아마도 페이지 자체가 UTF-8을 사용하도록 설정되지 않았기 때문일 수 있습니다. – bzlm

답변

1

IE는 아마도 파일 이름을 먼저 디코딩하여 해결하려고합니다.

(301)는이 당신을 위해 또 다른 옵션이 될 수있는 redirct 페이지 을하지 왜 리디렉션
입니다. 당신이에는 urlencoding 오용있는 것처럼

var url:URLRequest = new URLRequest('http://mydomain.com/redirpage.php?page=p%C3%A5.jpg'); 
+0

IE는 확실히 URL을 요청하고 변경하는 방법을 정확하게 말하고 있기 때문에 처음에는 다소 불충분 해 보이는 파일 이름을 먼저 해독하여 파일 이름을 확인하려고합니다. 리디렉션 페이지는 해결책이지만 요청 URL이 CDN이 캐시 한 것과 다를 수 있으므로 CDN 캐싱을 망칠 수 있습니다. – Shizam

+0

서버 스크립트에서 "page ="전달 된 매개 변수 값으로 위치를 채 웁니다. 리디렉션 페이지를 설정하는 방법은 다음 링크를 참조하십시오. http://www.webconfs.com/how-to-redirect-a-webpage.php –

관련 문제