Java 如何防止servlet转义响应中的双引号
我正在将带有嵌入双引号的数据从libcurl客户端发布到tomcatservlet。 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
{
"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
方法。