【发布时间】:2011-03-13 16:49:19
【问题描述】:
我正在解析来自 Facebook 的输入流。我正在使用类似的东西
BufferedReader in =
new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
然后in.readLine 实际从流中读取。
流似乎已经用 ASCII 编码了 Unicode 字符,所以我看到类似 \u00e4 的东西(其中 \u 实际上是两个离散的 ASCII 字符)。现在,我正在寻找“\u”并解码随后的两个十六进制字节,将它们转换为字符并用它们替换字符串,这显然是最糟糕的方法。
我确信有一种很酷的方法可以在读取流时使用本机函数来解码特殊字符(我希望它可以在 InputStreamReader 层上完成)。但是怎么做呢?
【问题讨论】:
-
您在解析什么 URL,以便我们查看/验证您的输入?这是 JSON 吗?
-
这是 Facebook 带有图形 API 的愚蠢的新系统。看起来像这样: {"data":[{"name":"Thanatos","id":"1234"},{"name":"Max\u00e4","id":"5678"}] }
-
@Thanatos:是的,顺便说一句。 JSON 的解析器会正确处理它。我很烂。