首页 > 学院 > 开发设计 > 正文

Servlet不能设置编码,设置编码无效!?

2019-11-08 18:35:23
字体:
来源:转载
供稿:网友
 我设置了这些东西但是
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=UTF-8");
代码完无效
response.setCharacterEncoding("utf-8");    response.setContentType(harEntry.response.content.mimeType);    response.setStatus(harEntry.response.status);    for (HarHeader header : harEntry.response.headers) {        response.addHeader(header.name, header.value);    }    PRintWriter ss = response.getWriter();    ss.write(remoteContent);    ss.close();} else {    remoteContentBin = EntityUtils.toByteArray(remoteEntity);    response.getOutputStream().write(remoteContentBin);}if (response.getContentType() == null || "".equals(response.getContentType())) {    response.setCharacterEncoding("UTF-8");    response.setContentType("application/json;charset=UTF-8");    response.addHeader("Content-Type", "application/json;charset=UTF-8");
原因是Response只要有访问就打开了流,只要打开了流,就不能设置编码了
如  response.getXXXX,response.setXXXXX 都会打开流!!
解决:在所有访问前提前设置编码:
public void doMock(HttpServletRequest request, HttpServletResponse response, String servername) {    try {        request.setCharacterEncoding("utf-8");        response.setCharacterEncoding("utf-8");
.....
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表