我发现在flash(至少10.x)和ie(7,8,9)中,如果我尝试加载包含转义的utf-8字符的图像url(p%C3%83%C2% A5)即使我对它们进行双重或三重编码,字符在发出url请求之前也会被解码。有没有什么办法来防止这种情况,所以URL(带有转义)我想要的方式实际上是什么要求?如何防止在Flash中解码utf-8 url?
其导致的问题是我们给utf-8解码url请求上的http状态301给编码的url,然后flash尝试请求(但是也就是解码它),并且因为301 +即自动解码。
编辑,添加代码示例:
var url:URLRequest = new URLRequest('http://mydomain.com/p%C3%A5.jpg');
var loader:Loader = new Loader();
loader.load(url);
现在我想请求走了过来线http://mydomain.com/p%C3%A5.jpg(和它在其他浏览器一样),但在IE它越过线http://mydomain.com/PA ¥的.jpg
编辑:我也试图与%25%替换(双编码%)的(好)的建议,但没有奏效,它只是造成这一请求走了过来线:
http://mydomain.com/p%25C3%25A5.jpg
这听起来像是你在滥用urlencoding。发布提出请求的Flash代码 – 2011-05-16 17:49:09
好主意,添加代码。 – Shizam 2011-05-16 18:28:09
IE不仅解码URL,它很可能是错误地解码它。它使用Windows默认编码(ish),当它可能应该是UTF-8。这可能是因为页面本身未设置为使用UTF-8。 – bzlm 2011-05-16 18:47:43