我在这样的java中有String
%C5%82%C3%B3
我想将其转换为UTF-8。输出字符串应如下所示
LO
我怎样才能实现这一目标?我在SO上经历了其他类似的主题,但没有任何帮助。我试过了:
byte[] b = myString.getBytes();
byte[] b1 = myString.getBytes(Charset.defaultCharset());
byte[] b2 = myString.getBytes(Charset.forName("UTF-8"));
byte[] b3 = myString.getBytes(Charset.forName("ISO-8859-2"));
byte[] b4 = myString.getBytes(Charset.forName("ISO-8859-1"));
System.out.println(new String(b, "UTF-8"));
System.out.println(new String(b, "ISO-8859-1"));
System.out.println(new String(b1, "UTF-8"));
System.out.println(new String(b1, "ISO-8859-1"));
System.out.println(new String(b2, "UTF-8"));
System.out.println(new String(b2, "ISO-8859-1"));
System.out.println(new String(b3, "UTF-8"));
System.out.println(new String(b3, "ISO-8859-1"));
System.out.println(new String(b4, "UTF-8"));
System.out.println(new String(b4, "ISO-8859-1"));
在上面的代码中,myString包含
%C5%82%C3%B3
和System.out始终打印
%C5%82%C3%B3
任何想法或我应该开始编写自己的转换方法吗?
答案 0 :(得分:3)
此字符串是URL编码的。你需要解码它。
在这里做一些测试。
http://meyerweb.com/eric/tools/dencoder/
然后试一试。
String result = URLDecoder.decode("%C5%82%C3%B3", "UTF-8");
另见: http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html
答案 1 :(得分:0)
您可以使用URLDecoder类来解码编码的字符串:
System.out.println(URLDecoder.decode("%C5%82%C3%B3", "UTF-8"));