Как предотвратить то есть от декодирования URL-адреса utf-8 во флэш-памяти? - PullRequest
0 голосов
/ 16 мая 2011

Я обнаружил, что во флэш-памяти (минимум 10.x) и т. Е. (7, 8, 9), если я пытаюсь загрузить URL-адрес изображения, содержащий экранированные символы utf-8 (p% C3% 83% C2% A5) что символы декодируются до того, как он выполнит запрос url, даже если я кодирую их дважды или трижды.Есть ли способ предотвратить это, чтобы URL-адрес (с escape-символами) был таким, каким я его хочу, на самом деле то, что запрашивается?

Проблема, вызывающая его, заключается в том, что мы задаем http-статус 301 при запросах url с декодированием utf-8к закодированному URL, который затем пытается запросить флэш (но то есть декодирует снова), и я застреваю в бесконечном цикле из-за 301+, то есть автоматического декодирования.

РЕДАКТИРОВАТЬ, добавляя пример кода:

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/pÃ¥.jpg

РЕДАКТИРОВАТЬ: Я также попробовал (хорошее) предложение заменить% на% 25 (двойное кодирование%), но это не сработало, просто это вызвало запрос на переход:

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

1 Ответ

1 голос
/ 16 мая 2011

IE, вероятно, пытается разрешить имя файла, сначала расшифровав его.

301 - перенаправление
Почему бы просто не сделать страницу перенаправления Это может быть другой вариант для вас.

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