Flex——加载中文路径文件

 

使用Flex/FlashLoaderURLLoader(或它们的派生类)使用URLRequest,通过http加载带中文路径的文件时,出现文件不存在错误。

 

例如:http://{host}/Common/Asset/新文件夹1/图片1.jpg

通过在服务器对http报文进行监控。

 

Case1:用Loader加载时,服务器收到的报文是:

GET /Common/Asset/%D0%C2%CE%C4%BC%FE%BC%D01/%CD%BC%C6%AC1.jpgHTTP/1.1

Case2:在浏览器直接请求,服务器收到的报文是:

GET /Common/Asset/%E6%96%B0%E6%96%87%E4%BB%B6%E5%A4%B91/%E5%9B%BE%E7%89%871.jpgHTTP/1.1

Case3:用encodeURI对“/Common/Asset/新文件夹1/图片1.jpg”加密,得到:

/Common/Asset/%E6%96%B0%E6%96%87%E4%BB%B6%E5%A4%B91/%E5%9B%BE%E7%89%871.jpg

 

对比case1,2,3可以发现:Case1GB2312编码的url escapeCase23UTF-8编码的url escape

这说明Flex/Flash的对于URLRequest(url)中的url有中文路径时,会采用GB2312编码进行url escape,这跟encodeURIUTF-8编码是不一致的。

 

我在服务器端处理该问题

我的http服务器对请求路径先判断是UTF-8还是GB2312编码,然后再进行相应解码。这样更能灵活应对上述产生的2种编码问题。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值