1

我有一个从 Internet 获取的页面,内容是 utf-8 编码为字符串,可能类似于:

{"has_more": true, "items": [{"body": "\u6ca1\u6709\u4f20\u8bf4\u4e2d\u7684\u90a3\u4e48\u597d",...}

我尝试使用 URLDecoder.decode(),但它不起作用,它输出的正是输入的内容。有什么建议么?这是 utf-8 显式编码的字符串对象,它不是 inputStream 或某事。我做了一些搜索工作,发现几乎没有相关性。

4

5 回答 5

1

那就是 JSON 编码,它以特定的方式处理某些特定的字符。它不是 URL 编码,因此不起作用。

为什么不尝试使用 JSON 库?json simpleGS​​ON是很好的开始。

出于好奇:这里描述了您所看到的编码:RFC4627

于 2013-04-16T08:53:13.297 回答
1

源代码符号是 u-encoded ( \uXXXX),但 String 本身是一个无法区分的普通字符串 (Java/JavaScript),例如\nor \t

JDK 有一个转换工具:

native2ascii -encoding UTF-8 -reverse mypage.json plain-utf8.json
于 2013-04-16T09:02:14.063 回答
0

您可以使用Gson将它们转换为地图。

于 2013-04-16T08:53:10.393 回答
0

查看 Java 中的库 - Java 中的 JSON

于 2013-04-16T08:53:16.540 回答
0

是的,它的JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

通过 http://www.json.org/java/

于 2013-04-16T08:54:17.150 回答