Ich versuche URL-Escape (Prozent-Encode) Nicht-ASCII-Zeichen in mehreren URLs, mit denen ich es zu tun habe. Ich arbeite mit einer Flash-Anwendung, die Ressourcen wie Bilder und Soundclips von diesen URLs lädt. Da die Dateinamen Nicht-ASCII-Zeichen enthalten kann, etwa so: 日本語.jpg
ich entkommen sie von utf-8 die Zeichen codiert, und dann Prozent-escaping die Unicode-Bytes, erhalten folgendes:URL Escaping Chinesisch/Japanisch Unicode-Zeichen für Internet Explorer
%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
Diese Dateinamen funktionieren einwandfrei, wenn ich die App in einem anderen Browser als dem Internet Explorer ausführe - ich habe Firefox, Safari und Chrome ausprobiert. Aber wenn ich die App in IE starten (versucht, beide 6 und 8) und es versucht, den Soundclip zu laden, erhalte ich: Error #2044: Unhandled ioError
und die URL beschädigt wurde, so etwas wie:
æ¥æ¬èª.jpg
Irgendwelche Gedanken darüber, wie das zu beheben ist? Dies ist nur ein Test für die Flash-App mit lokalen Dateisystem-URLs. Ich habe auch bemerkt, dass Internet Explorer nicht in der Lage ist, eine Datei wie zu suchen: file:///C:/%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
, obwohl Chrome/Firefox wird dekodieren und Last gut für eine Datei mit dem
C:\日本語.jpg
bearbeiten
ich glaube, mein Problem ist das gleiche wie das in dem folgende Actionscript-Codefragment gestoßen ist:
import flash.display.Loader;
import flash.net.URLRequest;
...
var ldr:Loader;
var req:URLRequest = new URLRequest("日本語.jpg");
ldr = new Loader();
ldr.load(req);
Die Verwendung der Zeichenfolge 日本語.jpg
funktioniert im IE, während die Verwendung der Zeichenfolge %E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
in anderen Browsern funktioniert. Was ich brauche, ist ein einzelnes Formular, das in allen Browsern funktioniert. Ich habe versucht, die %u
Kodierung und die HTTP-Anfrage Header auf Content-Type: text/html; charset=utf-8
ohne Glück in entweder Prozent-Escape oder Unescaped-Form.
Windows verwendet UTF-16 für Dateinamen. Also versuchen Sie% 65% E5% 67% 2C% 8A% 9E'. – Gumbo
Keine Würfel mit dem UTF-16-Namen, IE konnte es immer noch nicht finden. – Bear
verwandt: http://stackoverflow.com/questions/75980/best-practice-escape-or-codeuri-encodeuricomponent – cregox