2012-08-11 32 views
1

我有下面这个字符串,我不知道它是在哪种格式老实说?将任何字符串转换为UTF-8格式

Under%20\302\243100%2E00 

,我需要上面的字符串转换成UTF-8 format和输出应该像下面为上面的字符串。

Under%20£100%2E00 

所以基本上我怎么能转换成Java中所有的字符串为UTF-8格式?

+3

这是UTF-8数据部分URL编码,然后解码为Latin-1。完全解码后,结果为“100.00英镑以下”。 – 2012-08-11 01:49:42

+1

我不明白为什么需要在最后一个字符串中将小数点(''。')作为'“%2E”'编码。如果此字符串旨在成为URL,HTML,XML,JSON ...或任何其他立即想到的内容的一部分,则不是必需的。 – 2012-08-11 03:26:52

回答

2

你在那个字符序列(它不是Java字符串文字)中有什么是两种编码的混合体:八进制编码和URL编码。八进制编码看起来像\ xxx,其中xxx是八进制的字符代码。 Url encoding看起来像%XX,其中XX是十六进制中的字符代码。 Octal encoding实际上是Java规范的一部分。现在,将八进制转换为Java字符串并不是微不足道的。没有内置的方法。不过,请看这个主题,了解如何做到这一点的想法:How to unescape a Java string literal in Java?

+0

应该指出,这不是一个Java字符串......所以链接文章中的“想法”不会自动结转。 – 2012-08-11 03:29:38

+0

你是对的,我应该更明确地说,上述不是字符串文字。 – 2012-08-11 15:10:47

+0

那么有什么办法可以转换UTF-8格式的上述字符串?或者一些Java函数? – AKIWEB 2012-08-11 23:29:27

相关问题