在本地運(yùn)行項(xiàng)目的時(shí)候遇到打開(kāi)front的swagger亂碼,admin的swagger和管理端正常。
front
admin
報(bào)錯(cuò)信息:
解決辦法一,在ResponseFilter中強(qiáng)制轉(zhuǎn)換字符集
try {
HttpServletRequest req = (HttpServletRequest) request;
str = new ResponseRouter().filter(str, RequestUtil.getUri(req));
// 設(shè)置響應(yīng)頭中的字符集為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();
// 通常不需要顯式關(guān)閉流,因?yàn)镾ervlet容器會(huì)管理這些流
// outputStream.close();
// response.flushBuffer(); // 這一步也是多余的,因?yàn)榱饕呀?jīng)刷新
}
} catch (Exception e) {
e.printStackTrace();
}
解決辦法二
設(shè)置環(huán)境變量
環(huán)境變量-->系統(tǒng)變量:變量 JAVA_TOOL_OPTIONS 值 -Dfile.encoding=UTF-8