2012-03-29 92 views
1

我有一个带有UTF8字符的字符串,我使用StringEntity将其放入HttpEntityEnclosingRequestBase并将其发送到服务器。 我的问题是,UTF8字符编码为\ xF2,服务器想要\ u00f2。我怎样才能解决这个问题?或者我怎样才能轻松地将一个UTF-8字符串转换为一个字符串,我有像substrings而不是UTF8字符?Java UTF-8字符串序列化 xF2而不是 u00F2

解决方案: 最后,解决方案是: StringEntity(string,“UTF-8”));

由于提前,大卫

+1

问:哪来的(16位) “\ u00f2” 中的 “8” ??? – paulsm4 2012-03-29 18:10:29

+0

好吧,所以我的主要问题应该是如何将UTF-8转换为UTF-16? – seriakillaz 2012-03-29 18:12:40

回答

1

您可以通过多种方式Java的内部字符编码(UTF-16)和UTF-8字节序列之间的转换。最简单的是:

byte[] utf8data = "my string".getBytes("UTF-8"); 
String myString = new String(utf8data, "UTF-8"); 

还有一些面向流的类可以使用编码在字节流和字符流之间进行转换。请参阅java.io包。

-1

只是做


String str = ...; 
str = replace("\\x", "\\u00"); 
+0

对不起,如果我很困惑你的代码的状态是 – ControlAltDel 2012-03-29 18:16:19

+0

不幸的是我没有序列化的字符串。 – seriakillaz 2012-03-29 18:21:23