我刚刚遇到过这样的事情:
String sample = "somejunk+%3cfoobar%3e+morestuff";
打印出来,样本看起来像这样:
somejunk +
<foobar
&GT; + morestuff
这是如何工作的? U + 003c和U + 003e分别是小于和大于符号的Unicode代码,这似乎不仅仅是巧合,但我从未听说过Java自动做这样的事情。我认为进入谷歌会很容易,但事实证明谷歌并不喜欢百分号。
答案 0 :(得分:2)
该字符串可能是URL encoded您使用URLDecoder
在java中解码String res = java.net.URLDecoder.decode(sample, "UTF8");
答案 1 :(得分:1)
你可以这样做,
String sample = "somejunk+%3cfoobar%3e+morestuff";
String result = URLDecoder.decode(sample.replaceAll("\\+", "%2B"), "UTF8");
答案 2 :(得分:1)
Java确实支持char
和String
文字中的Unicode转义,但不支持URL编码。
Unicode转义使用'\uXXXX'
,其中XXXX是十六进制的Unicode点。
好奇的花絮:语法允许'u'
多次出现,因此'\uuuuuuuu0041'
是一个有效的Unicode转义符(对于'A'
)。