我对IE的URL有一个奇怪的问题,如果我在URL中通过了场景,它就不起作用了,而且它似乎很适合其他浏览器。
在IE中,URL显示为:
.a9nario?关键字=sc%c3%83%c2%a9 a9nario
在FireFox URL中,如下所示:
.A9nario?关键字=sc%C3%A9 A9nario
在IE中,URL中断和Firefox工作正常,我是否需要在IE中进行URL解码来解决这个问题?
发布于 2011-09-06 05:38:51
虽然你没有说你是如何“传递”字符串的,但我可以告诉你发生了什么。
字符é有码点E9。在UTF-8中,这被编码为两个字节: C3 A9。因此,在URL中显示"scénario“的正确方法是
sc%C3%A9nario现在,如果您使用这个字符串,查看每个字节并假设它们是字符,然后进行第二次UTF-8编码,会发生什么情况?会发生的是
c -> c
h 111n ->
这与你在IE中看到的完全一致。
现在我无法确定这是如何发生的,因为问题中没有足够的背景,但是很清楚的是,字符串"scénario“被编码成一个UTF-8字节字符串,然后根据一个奇怪的假设,第一个编码在Windows-1252或拉丁文1编码中产生了一个字符串。
您需要了解字符串是如何被“编码两次”的。
https://stackoverflow.com/questions/5300803
复制相似问题