我遇到一个问题,Internet Explorer(10,但我认为我对旧IE有相同的问题)将根据我是否正常点击链接或者如果我在新标签中打开它来对URL进行不同编码按住Control键点击它。
我已经制作了一个小型JSBin来测试这个问题,这就是当我点击链接正常时Wireshark所显示的内容:
这是控制点击:
时的结果
请注意,URL中的“Å”编码方式不同,第一种情况下为“\ 305”,第二种情况下为“\ 303 \ 205”。
如何重现
您需要Wireshark或类似的工具,因此需要做一些工作。
为什么会发生这种情况,更重要的是,是否有解决方法或真正的解决方法?
答案 0 :(得分:2)
这是一个无效的网址。像谷歌浏览器这样的浏览器可能会欺骗开发人员,因为他们的地址栏显示已解码的字符,但他们从不将这些字符发送到服务器,而是在后台使用标准URL编码此外,当您从Google Chrome地址栏中复制网址时,丑陋的编码会将其发送到剪贴板。
URL without encoding中允许的唯一字符是:
未预留
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ . ~
保留
必须有时编码! * ' ( ) ; : @ & = + $ , / ? % # [ ]
对链接中的网址进行编码:
<a href="?pKod=BAS%C3%85R"></a>