我正在解析来自Facebook的输入流。我使用的是类似在输入流中解码 u0000 Unicode的更优雅的方式
BufferedReader in =
new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
然后in.readLine
实际上从流中读取。
该流似乎已经使用ASCII编码的Unicode字符,因此我会看到诸如\ u00e4(其实是两个离散的ASCII字符)。现在,我正在捕捉“\ u”并解码后面的两个十六进制字节,将它们转换为char并用它们替换字符串,这显然是最糟糕的方式。
我确定有一种很酷的方式来使用本地函数来解码特殊字符,因为正在读取流(我希望它可以在InputStreamReader图层上完成)。但是如何?
你要解析哪个URL,以便我们看到/验证你的输入?这是JSON,有机会吗? – Thanatos 2010-07-09 04:53:23
这是Facebook的愚蠢的新系统与他们的图形API。看起来像这样: {“data”:[{“name”:“Thanatos”,“id”:“1234”},{“name”:“Max \ u00e4”,“id”:“5678” }]} – EboMike 2010-07-09 05:54:13
@Thanatos:是的,它是,顺便说一句。 JSON的解析器可以正确处理它。我吮吸。 – EboMike 2010-10-19 04:43:33