Flex——加载中文路径文件
?
使用Flex/Flash的Loader、URLLoader(或它们的派生类)使用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可以发现:Case1是GB2312编码的url escape,Case2、3是UTF-8编码的url escape。 这说明Flex/Flash的对于URLRequest(url)中的url有中文路径时,会采用GB2312编码进行url escape,这跟encodeURI的UTF-8编码是不一致的。 ? 我在服务器端处理该问题 我的http服务器对请求路径先判断是UTF-8还是GB2312编码,然后再进行相应解码。这样更能灵活应对上述产生的2种编码问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |