Json转换&在一个字符串中\ u0026

时间:2012-10-03 05:12:44

标签: java json string unicode gson

我正在尝试从pdf中提取文本并将其写入json文件。在提取unicode字符时,Json转换所有&到了\ u0026。例如,我的实际字符串是&#1588。 (代表ش)。它正确打印到.txt文件,控制台等。但是当我尝试将此字符串打印到Json文件时,它显示\u0026#1588;

我使用的是Java,代码是

Gson gson = new Gson();
String json = gson.toJson(pdfDoc);

注意:pdfDoc是一个对象,它包含输入PDF文档中字符的所有细节(位置,颜色,字体等)。我正在使用gson-2.2.1.jar

1 个答案:

答案 0 :(得分:34)

这实际上是一种有效(但不是必需的)编码。 任何字符可以使用JSON中的unicode转义进行编码,任何有效的JSON解析库都必须能够解释这些转义。

&不是需要编码的字符的一部分(请参阅string at json.org的定义),但是有一些JSON库是他们的编码非常“激进”。这通常不是问题,除非您没有使用符合JSON解析器的方式处理生成的JSON。

如果您绝对需要,

GsonBuilder.disableHtmlEscaping()会帮助您关闭此功能。