I have a flash app that needs to download a file, whose name contains UTF-8 characters.
Internally, the filename is read from a UTF-8 XML file, e.g. “my filé.pdf”. The code goes something like this:
url = get_filename_from_XML();
req = new URLRequest( url );
ref = new FileReference();
ref.download( req );
The problem is that the URL is encoded in Latin1, i.e. the é is encoded as %E9 instead of %C3%A9 (according to FireBug). How can I get Flash to encode the URL correctly?
I found a hack:
The encodeURI turns it into Latin1, URL-encoded, then decode turns it into Latin1 text (effectively changing the internal encoding of the String). The URLRequest then encodes the bytes correctly, using %C3%A9 for é.