0

我将带有嵌入式双引号的数据从 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")
4

1 回答 1

1

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

于 2012-05-11T18:45:52.793 回答