加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex——加载中文路径文件

发布时间:2020-12-15 01:07:30 所属栏目:百科 来源:网络整理
导读:? 使用 Flex/Flash 的 Loader 、 URLLoader ( 或它们的派生类 ) 使用 URLRequest ,通过 http 加载带 中文路径的文件时,出现文件不存在错误。 ? 例如: http://{host}/Common/Asset/ 新文件夹 1 / 图片 1 . jpg 通过在服务器对 http 报文进行监控。 ? Case1
?

使用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种编码问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读