我設置了這些東西但是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");.....
新聞熱點
疑難解答