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