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

时间:2012-05-11 18:39:56

标签: java tomcat libcurl

我使用libcurl客户端的嵌入式双引号发布数据到Tomcat servlet。 servlet读取数据并将其发送回我的客户端。

我发送的内容看起来像这样

{
   "id": 1,
   "name": "Foo",
}

但是我从servlet收到的内容看起来像这样

{
   \"id\": 1,
   \"name\": \"Foo\"
}

即。所有双引号都被转义。

如何阻止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")

1 个答案:

答案 0 :(得分:1)

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