[英]URL encoding when downloading a file in Flash
我有一个Flash应用程序,需要下载一个文件,该文件的名称包含UTF-8字符。
在内部,文件名是从UTF-8 XML文件读取的,例如“ myfilé.pdf”。 该代码是这样的:
url = get_filename_from_XML();
req = new URLRequest( url );
ref = new FileReference();
ref.download( req );
问题在于URL是用Latin1编码的,即é被编码为%E9而不是%C3%A9(根据FireBug)。 如何使Flash正确编码URL?
您可以尝试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 );
我发现了一个骇客:
url = decode( encodeURI( url ) );
req = new URLRequest( url );
encodeURI将其转换为经过URL编码的Latin1,然后进行解码,将其转换为Latin1文本(有效地更改了String的内部编码)。 然后,URLRequest使用é的%C3%A9正确编码字节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.