Json将&在String中转换为\ u0026

Nee*_*raj 18 java string unicode json gson

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

我使用的是Java,代码是

Gson gson = new Gson();
String json = gson.toJson(pdfDoc);
Run Code Online (Sandbox Code Playgroud)

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

Joa*_*uer 34

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

&不是需要编码的字符的一部分(参见string json.org的定义),但是有一些JSON库在编码时非常"激进".这通常不是问题,除非你没有用一致的JSON解析器真正处理生成的JSON.

如果你绝对需要,GsonBuilder.disableHtmlEscaping()将帮助你关闭该功能.

  • 谢谢。有效。我将代码更改为 Gson gson = new GsonBuilder().disableHtmlEscaping().create(); (2认同)