Кодировка URL при загрузке файла во Flash - PullRequest
0 голосов
/ 25 августа 2010

У меня есть флэш-приложение, которому нужно загрузить файл, имя которого содержит символы UTF-8.

Внутренне имя файла читается из XML-файла UTF-8, например, "мой файл.pdf". Код выглядит примерно так:

url = get_filename_from_XML();
req = new URLRequest( url );

ref = new FileReference();
ref.download( req );

Проблема в том, что URL кодируется на латинице 1, т. Е. Символ é кодируется как% E9 вместо% C3% A9 (согласно FireBug). Как я могу заставить Flash правильно кодировать URL?

Ответы [ 2 ]

0 голосов
/ 27 августа 2010

Я нашел взлом:

url = decode( encodeURI( url ) );

req = new URLRequest( url );

Кодирующий UUR превращает его в Latin1, кодирует URL, затем декодирует, превращает его в текст Latin1 (эффективно изменяя внутреннюю кодировку String).Затем URLRequest правильно кодирует байты, используя% C3% A9 для é.

0 голосов
/ 25 августа 2010

Вы можете попробовать escape () или encodeURI (). Проверить документы: http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/

url = get_filename_from_XML();

url = escape(url);
//url = encodeURI( url );

req = new URLRequest( url );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...