在本地運行項目的時候遇到打開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