Android 是否在URL和windows文件名(AIR)之间转换?

Android 是否在URL和windows文件名(AIR)之间转换?,android,ios,actionscript-3,url,air,Android,Ios,Actionscript 3,Url,Air,我正在尝试将图像保存到智能手机AIR应用程序的磁盘中。 我需要一种方法,可以在Android和iOS上安全地将Web URL转换为有效的文件名(如果它能保持Windows/Mac兼容性就好了),并且我可以从文件名中恢复原始完整URL。例如: 输入为: 编码格式类似(这只是我现在发现的一些示例): http%d%s%swww.google.com%t搜索%r客户端%z 我需要一个方法把它转换回来。 我已经研究了BASE64,但这允许使用“/”字符,而且我担心使用十六进制编码,因为这将生成超长的文

我正在尝试将图像保存到智能手机AIR应用程序的磁盘中。 我需要一种方法,可以在Android和iOS上安全地将Web URL转换为有效的文件名(如果它能保持Windows/Mac兼容性就好了),并且我可以从文件名中恢复原始完整URL。例如:
输入为:

编码格式类似(这只是我现在发现的一些示例):
http%d%s%swww.google.com%t搜索%r客户端%z

我需要一个方法把它转换回来。 我已经研究了BASE64,但这允许使用“/”字符,而且我担心使用十六进制编码,因为这将生成超长的文件名,URL可能会很长。
根据另一个问题,在iOS中,最大长度路径名为1024字节:

有人有解决空气污染的办法吗?基本上,这是同一个问题-只是空气,iOS,安卓

或者我应该简单地修改BASE64编码器,并对长文件名进行一些黑客攻击吗?

为什么不使用escape()和unescape(),这实际上是用安全字符替换所有有害字符。类似于JavaScript的escape()函数

编辑)我已更正,除了转义符之外,您还需要替换斜杠和星形(/*)字符,以及任何其他无效字符,正如您所指出的


出于好奇,为什么不单独编写一个包含url的文本文件,并将其命名为与图像相同的名称?甚至使用数据库?这将确保您永远不会得到超过最大文件名限制的疯狂长url,并且您也不必担心转义/转换字符。

因为它不会替换有害字符,如“*”或“/”。如果我将url写入文本文件,则会出现唯一图像名称的问题(我如何才能区分sitea.com/logo.jpg和siteb.com/logo.jpg之间的图像名称?)。我没有使用数据库,因为我尝试为Flex的图像类型BitmapImage和image创建本地缓存。问题是这些图像需要LoaderInfo来获取加载的图像,而DB查询无法生成此结果。