0

PDF ファイルの内容を読み取り、JSON 文字列でサーバーに送信したいと考えています。google guava ライブラリを使用して、pdf ファイルの内容を文字列に読み込みました。次に、jettison JSON ライブラリを使用して、JSON と競合する必要な文字をエスケープしました。

String content = Files.toString(new File("C:/Users/Sudhagar/Desktop/GAME.pdf"), Charset.defaultCharset());

String escapedContent = org.codehaus.jettison.json.JSONObject.quote(content);

JVM のデフォルトの文字セットを UTF-8 に設定しました。

結果の JSON 文字列は次のように作成されます。

String respStr = "{\n";
respStr = respStr + "\"mimetype\" : \"" + "text/plain" + "\",\n";
respStr = respStr + "\"value\" : " + escapedContent + "\n";
respStr = respStr + "}\n";
System.out.println(respStr);
StringEntity entity = new StringEntity(respStr);
httpput.setEntity(entity);

この JSON をサーバーに送信すると、例外が発生します。

org.codehaus.jackson.JsonParseException: Invalid UTF-8 middle byte 0xfc  at [Source: [B@5733c2; line: 3, column: 25]

このアプローチまたはこの問題に対する他のアプローチにエラーがあるかどうかを知りたいです。

4

1 に答える 1

3

PDF ファイルは、画像や暗号化されたデータと同様に、不透明なバイナリ データと見なされるべきだと思います。

プレーンテキストファイルのように読まないでください。他のバイナリ データと同じように扱います。これはおそらく、JSON のために base64 でエンコードすることを意味します。

于 2013-04-04T20:55:15.490 に答える