2012-10-03 106 views
15

我試圖從pdf中提取文本並將其寫入json文件。在提取unicode字符時,Json會將所有&轉換爲\ u0026。例如我的實際字符串是&#1588。 (代表ش)。它正確打印到.txt文件,控制檯等。但是,當我嘗試將此字符串打印到Json文件時,它顯示\u0026#1588;Json將字符串轉換爲<

我使用Java和代碼

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

注:pdfDoc是一個對象,包含輸入PDF文檔中的字符的所有細節(位置,顏色,字體...等)。我正在使用gson-2.2.1.jar

回答

30

這實際上是一個有效的(但不是必需的)編碼。 任何字符可能使用JSON中的unicode轉義進行編碼,並且任何有效的JSON解析庫必須都能夠解釋這些轉義。

&不是需要編碼(見的stringat json.org定義)字符的一部分,但也有相當「激進」在他們的編碼幾個JSON庫。這通常不是問題,除非您不真正處理帶有符合JSON解析器的JSON。

GsonBuilder.disableHtmlEscaping()將幫助您關閉該功能,如果你絕對需要。

+1

謝謝。有效。我將代碼更改爲Gson gson = new GsonBuilder()。disableHtmlEscaping()。create(); – Neeraj