我想阅读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]
我想知道此方法或此问题的任何其他方法是否有任何错误。
答案 0 :(得分:3)
我认为PDF文件应该被视为不透明的二进制数据,就像图像或加密数据一样。
不要读取它,就好像它是纯文本文件一样。像对待其他二进制数据一样对待它 - 这可能意味着为了JSON而对它进行base64编码。