Java 如何防止servlet转义响应中的双引号

Java 如何防止servlet转义响应中的双引号,java,tomcat,libcurl,Java,Tomcat,Libcurl,我正在将带有嵌入双引号的数据从libcurl客户端发布到tomcatservlet。 servlet读取数据并将其发送回我的客户机 我送的是这样的 { "id": 1, "name": "Foo", } { \"id\": 1, \"name\": \"Foo\" } 但是我从servlet接收到的信息如下所示 { "id": 1, "name": "Foo", } { \"id\": 1, \"name\": \"Foo\" } i、 e

我正在将带有嵌入双引号的数据从libcurl客户端发布到tomcatservlet。 servlet读取数据并将其发送回我的客户机

我送的是这样的

{
   "id": 1,
   "name": "Foo",
}
{
   \"id\": 1,
   \"name\": \"Foo\"
}
但是我从servlet接收到的信息如下所示

{
   "id": 1,
   "name": "Foo",
}
{
   \"id\": 1,
   \"name\": \"Foo\"
}
i、 e.所有双引号都被转义

如何防止servlet转义引号? 我的servlet在doPost方法中执行类似的操作

public void doPost(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
{
    BufferedReader reader = request.getReader();
    StringBuilder content = new StringBuilder();
    char[] buffer = new char[4 * 1024];
    int len = 0;
    while (len >= 0) { 
        len = reader.read(buffer, 0, buffer.length); 
        if (len > 0) { 
            content.append(buffer, 0, len);
        }
    }

    PrintWriter out = response.getWriter(); 
    out.print(content.toString())
}
编辑
这解决了我的问题

URLEncoder.encode(content.toString(),"UTF-8")

在编写字符串之前对其进行编码。

StringBuilder为空,但您至少可以使用该方法对其进行附加。@Vulcan谢谢。固定的。这是复制粘贴的一个输入错误,缓冲区在我的代码中正确初始化。这是正确的答案。有更新的编码方法吗?我使用URLEncoder.encode收到一条不推荐的警告。请使用接受编码作为第二个参数的
encode
方法。