Java中Unicode字符串的自动格式化
我只是遇到了这样的事情:Java中Unicode字符串的自动格式化,java,unicode,string-formatting,Java,Unicode,String Formatting,我只是遇到了这样的事情: String sample = "somejunk+%3cfoobar%3e+morestuff"; 打印出来的样本如下所示: String sample = "somejunk+%3cfoobar%3e+morestuff"; 一些垃圾++更多东西 这是怎么回事?U+003c和U+003e分别是小于和大于符号的Unicode代码,这似乎不仅仅是巧合,但我从未听说过Java会自动执行类似的操作。我想进入谷歌是件容易的事,但事实证明谷歌不喜欢百分号。你可以这样做
String sample = "somejunk+%3cfoobar%3e+morestuff";
打印出来的样本如下所示:
String sample = "somejunk+%3cfoobar%3e+morestuff";
一些垃圾++更多东西
这是怎么回事?U+003c和U+003e分别是小于和大于符号的Unicode代码,这似乎不仅仅是巧合,但我从未听说过Java会自动执行类似的操作。我想进入谷歌是件容易的事,但事实证明谷歌不喜欢百分号。你可以这样做
String sample = "somejunk+%3cfoobar%3e+morestuff";
String result = URLDecoder.decode(sample.replaceAll("\\+", "%2B"), "UTF8");
你可以这样做
String sample = "somejunk+%3cfoobar%3e+morestuff";
String result = URLDecoder.decode(sample.replaceAll("\\+", "%2B"), "UTF8");
该字符串可能是您在java中使用
该字符串可能是您在java中使用
Java确实支持char
和String
文本中的Unicode转义,但不支持URL编码
Unicode转义使用'\uxxx'
,其中XXXX是十六进制的Unicode点
奇怪的小贴士:语法允许'u'
多次出现,因此'\uuuuu 0041'
是一个有效的Unicode转义(对于'a'
)。Java支持字符和字符串文本中的Unicode转义,但不支持URL编码
Unicode转义使用'\uxxx'
,其中XXXX是十六进制的Unicode点
奇怪的小贴士:语法允许'u'
多次出现,因此'\uuuu 0041'
是一个有效的Unicode转义(对于'a'
)。Java不会这样做。看起来你有一个URL编码的字符串。是的,我猜你是在网页上看到的,而不是在实际编译的源文件中看到的:-)你是如何打印出来的,如果标准输出到哪个终端的?Java不会这样做。看起来你有一个URL编码的字符串。是的,我猜你在网页上看到了它,而不是在实际编译的源文件中:-)你是如何打印出来的,如果标准输出到哪个终端?结果很接近,在我的例子中,它实际上被用作Wicket ExternalLink。()结果很接近,在我的情况下,它实际上被用作一个外部导叶。()