2012-10-03 2 views
15

pdf에서 텍스트를 추출하여 json 파일에 쓰려고합니다. 유니 코드 문자를 추출하는 동안 Json은 모두 &을 \ u0026으로 변환합니다. 예를 들어 내 실제 문자열은 &#1588입니다. (ش을 나타냄). .txt 파일, 콘솔 등으로 올바르게 인쇄됩니다. 그러나이 문자열을 Json 파일에 인쇄하려고 시도하면 \u0026#1588;이 표시됩니다.Json이 문자열을 u0026으로 변환합니다.

나는 자바를 사용하고, 그리고 코드는

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

주 : pdfDoc 입력 PDF 문서 내의 문자의 모든 세부 사항 (위치, 색상, 글꼴 등등)를 포함하는 개체입니다. gson-2.2.1.jar을 사용하고 있습니다.

답변

30

실제로 유효한 (필수는 아님) 인코딩입니다. 문자 은 JSON에서 유니 코드 이스케이프를 사용하여 인코딩 할 수 있으며 유효한 JSON 구문 분석 라이브러리 에서 이러한 이스케이프를 해석 할 수 있어야합니다.

&는 인코딩 (stringat json.org의 정의 참조)가 필요 문자의 일부가 아니라, 자신의 인코딩에서 확실히 "공격적"입니다 몇 JSON 라이브러리가있다. JSON 구문 분석기를 사용하여 결과 JSON을 실제로 처리하지 않는 한 일반적으로 문제가되지 않습니다.

GsonBuilder.disableHtmlEscaping() 절대적으로 필요한 경우 해당 기능을 사용 중지하는 데 도움이됩니다.

+1

감사합니다. 그것은 효과가 있었다. 코드를 Gson gson = new GsonBuilder()로 변경했습니다. disableHtmlEscaping(). create(); – Neeraj

관련 문제