在GWT
应用程序中,我尝试打开Window
传递包含查询参数的url
。碰巧有一个参数命名为:deg_test
,因此格式化网址类似于:http://localhost:8888/mymodule/search?param1=value1¶m2=value2°_test=123
。
在Chrome
和Firefox
中,窗口按预期打开,但在IE 11
°_
部分被误解为°
并且转换为度符号(º)并打破网址!
示例代码:
String query = "?param1=value1¶m2=value2°_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¶m2=value2°_test=123
如果我使用URL.encodeQueryString
方法代替URL.encode
,则?
和&
都会被编码,服务器会抱怨404
答案 0 :(得分:2)
实际上它不是GWT问题只是IE的一般问题。它将转换看起来像实体的任何东西(最后没有;
),例如:
分别为°
,<
,>
至°
,<
,>
。请参阅this question。
作为一种快速解决方法,我建议您将deg_test
param放在查询的开头。这样您就不会获得°
片段而是?deg
。
?deg_test=123¶m1=value1¶m2=value2
它会起作用。