여러 URL에서 비 ASCII 문자를 URL 이스케이프 (백분율 인코딩)하려고합니다. 저는 이러한 URL에서 이미지 및 사운드 클립과 같은 리소스를로드하는 플래시 응용 프로그램을 사용하고 있습니다. 파일 이름이 비 ASCII 문자과 같이 포함 할 수 있기 때문에 :URL Internet Explorer 용 중국어/일본어 유니 코드 문자 이스케이프
%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
: 日本語.jpg
을 내가 UTF-8 문자 인코딩 한 다음 유니 코드 바이트를 퍼센트 탈출하여 그들을 탈출, 다음을 얻을 수 있습니다 이 파일 이름은 Internet Explorer 이외의 다른 브라우저에서 앱을 실행할 때 잘 작동합니다. Firefox, Safari 및 Chrome을 사용해 보았습니다. 내가 IE에서 응용 프로그램을 실행할 때 (시도 모두 6, 8)과 사운드 클립을로드하려고, 내가 얻을 : Error #2044: Unhandled ioError
을하고 URL이 같은 뭔가 손상되었습니다
æ¥æ¬èª.jpg
모든 이 문제를 해결하는 방법에 대한 생각? 이것은 로컬 파일 시스템 URL을 사용하여 플래시 응용 프로그램을 테스트하는 것입니다. 나는 또한 인터넷 탐색기와 같은 파일을 찾을 수없는 것으로 나타났습니다 : file:///C:/%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
는, 비록 크롬/파이어 폭스가와 경로
C:\日本語.jpg
와 파일에 대한 잘 부하를 디코딩됩니다 편집
내 문제는 다음 ActionScript 코드 조각에서 발견 된 것과 같은 생각 :
import flash.display.Loader;
import flash.net.URLRequest;
...
var ldr:Loader;
var req:URLRequest = new URLRequest("日本語.jpg");
ldr = new Loader();
ldr.load(req);
문자열 日本語.jpg
을 사용하면 IE에서 작동하지만 다른 브라우저에서는 %E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
문자열을 사용할 수 있습니다. 필요한 모든 브라우저에서 작동하는 단일 양식입니다. %u
인코딩을 시도하고 백분율 이스케이프 또는 이스케이프 처리되지 않은 양식으로 http 요청 헤더를 Content-Type: text/html; charset=utf-8
으로 설정했습니다.
Windows는 파일 이름에 UTF-16을 사용합니다. 따라서 '% 65 % E5 % 67 % 2C % 8A % 9E'을 시도하십시오. – Gumbo
UTF-16 이름의 주사위가 없지만 IE는 여전히 그것을 찾을 수 없습니다. – Bear
관련 : http://stackoverflow.com/questions/75980/best-practice-escape-or-encodeuri-encodeuricomponent – cregox