将pdf文件编码为JSON字符串时出错

时间:2013-04-04 20:52:44

标签: java json utf-8 jackson

我想阅读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]

我想知道此方法或此问题的任何其他方法是否有任何错误。

1 个答案:

答案 0 :(得分:3)

我认为PDF文件应该被视为不透明的二进制数据,就像图像或加密数据一样。

不要读取它,就好像它是纯文本文件一样。像对待其他二进制数据一样对待它 - 这可能意味着为了JSON而对它进行base64编码。