IE 11中的GWT Window.open错误解释查询参数°= 123

时间:2017-02-10 07:50:27

标签: internet-explorer url gwt encoding

GWT应用程序中,我尝试打开Window传递包含查询参数的url。碰巧有一个参数命名为:deg_test,因此格式化网址类似于:http://localhost:8888/mymodule/search?param1=value1&param2=value2&deg_test=123

ChromeFirefox中,窗口按预期打开,但在IE 11 &deg_部分被误解为°并且转换为度符号(º)并打破网址!

示例代码:

String query = "?param1=value1&param2=value2&deg_test=123";
com.google.gwt.user.client.Window.open("http://localhost:8888/mymodule/search"
                    + URL.encode(query), "_blank", "resizable=yes"

IE窗口网址:http://localhost:8888/mymodule/search?param1=value1&param2=value2°_test=123

如果我使用URL.encodeQueryString方法代替URL.encode,则?&都会被编码,服务器会抱怨404

1 个答案:

答案 0 :(得分:2)

实际上它不是GWT问题只是IE的一般问题。它将转换看起来像实体的任何东西(最后没有;),例如: 分别为&deg&lt&gt°<>。请参阅this question

作为一种快速解决方法,我建议您将deg_test param放在查询的开头。这样您就不会获得&deg片段而是?deg

?deg_test=123&param1=value1&param2=value2

它会起作用。