【发布时间】:2015-08-17 20:48:58
【问题描述】:
我正在使用 java.net.URLDecoder 来解码应该以 UTF-8 编码的 URL 参数。快速测试显示我在输出中得到? 而不是∩。代码如下:
System.out.println(java.net.URLDecoder.decode("A%E2%88%A9B%0AYour+answer+is%3A+3", "UTF-8"));
我得到的输出是:
A?B
Your answer is: 3
当我将字符串 A%E2%88%A9B%0AYour+answer+is%3A+3 插入网络解码器(例如 here 或 here)时,它们是正确的:
A∩B
Your answer is: 3
有谁知道我做错了什么。这实际上不是 UTF-8 吗?该字符串来自com.google.gwt.http.client.URL.encodeQueryString(),它声称是UTF-8 编码。
【问题讨论】:
-
我猜你是在 Windows 上的 cmd.exe 中运行它吗?
-
我正在运行 Eclipse 并读取控制台输出。虽然我最初在 Tomcat 服务器上运行代码时遇到了问题。
-
在Ideone 上运行上述代码会产生第二个文本...
-
对我来说,您的字体似乎不支持交叉符号。你的输出使用什么字体?您可以在此处找到fileformat.info/info/unicode/char/2229/index.htm 的字体列表。
-
是的,调试时我可以看到交叉符号作为变量的值。是控制台显示不正确。我相信 Eclipse 使用了 Consolas。
标签: java gwt utf-8 url-parameters