Java中的自动Unicode字符串格式

时间:2009-09-16 14:43:45

标签: java unicode string-formatting

我刚刚遇到过这样的事情:

String sample = "somejunk+%3cfoobar%3e+morestuff";

打印出来,样本看起来像这样:

  

somejunk + <foobar&GT; + morestuff

这是如何工作的? U + 003c和U + 003e分别是小于和大于符号的Unicode代码,这似乎不仅仅是巧合,但我从未听说过Java自动做这样的事情。我认为进入谷歌会很容易,但事实证明谷歌并不喜欢百分号。

3 个答案:

答案 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确实支持charString文字中的Unicode转义,但不支持URL编码。

Unicode转义使用'\uXXXX',其中XXXX是十六进制的Unicode点。

好奇的花絮:语法允许'u'多次出现,因此'\uuuuuuuu0041'是一个有效的Unicode转义符(对于'A')。