我正在尝试从pdf中提取文本并将其写入json文件。在提取unicode字符时,Json转换所有&到了\ u0026。例如,我的实际字符串是ش
。 (代表ش)。它正确打印到.txt文件,控制台等。但是当我尝试将此字符串打印到Json文件时,它显示\u0026#1588;
。
我使用的是Java,代码是
Gson gson = new Gson();
String json = gson.toJson(pdfDoc);
注意:pdfDoc
是一个对象,它包含输入PDF文档中字符的所有细节(位置,颜色,字体等)。我正在使用gson-2.2.1.jar
。
答案 0 :(得分:34)
这实际上是一种有效(但不是必需的)编码。 任何字符可以使用JSON中的unicode转义进行编码,任何有效的JSON解析库都必须能够解释这些转义。
&
不是需要编码的字符的一部分(请参阅string
at json.org的定义),但是有一些JSON库是他们的编码非常“激进”。这通常不是问题,除非您没有使用符合JSON解析器的方式处理生成的JSON。
GsonBuilder.disableHtmlEscaping()会帮助您关闭此功能。