繁体   English   中英

在Flash中下载文件时的URL编码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM