在本地运行项目的时候遇到打开front的swagger乱码,admin的swagger和管理端正常。
front
admin
报错信息:
解决办法一,在ResponseFilter中强制转换字符集
try {
HttpServletRequest req = (HttpServletRequest) request;
str = new ResponseRouter().filter(str, RequestUtil.getUri(req));
// 设置响应头中的字符集为UTF-8
httpResponse.setContentType("text/html;charset=UTF-8");
// 把返回值输出到客户端
ServletOutputStream outputStream = httpResponse.getOutputStream();
if (str.length() > 0) {
// 明确指定使用UTF-8字符集
outputStream.write(str.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
// 通常不需要显式关闭流,因为Servlet容器会管理这些流
// outputStream.close();
// response.flushBuffer(); // 这一步也是多余的,因为流已经刷新
}
} catch (Exception e) {
e.printStackTrace();
}
解决办法二
设置环境变量
环境变量-->系统变量:变量 JAVA_TOOL_OPTIONS 值 -Dfile.encoding=UTF-8