今天部署个项目,显示、查询啥啥一切正常,更新数据,保存再对出来,凡是中文的都变成了乱码。
各种查,系统该配置的都配了,始终没明白为什么乱码,配置信息如下:
server.tomcat.uri-encoding=UTF-8
server.servlet.encoding.force=true
server.servlet.encoding.charset=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
前端使用的也是UTF-8:
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 60000
})
突然想到服务器编码,查了下,果然,我使用的登录用户使用了GBK,但也不对,我其他项目使用了 也是和现在的情况一样,只是部署方式不一样,另一个项目前后端分离的,前端放在了Tomcat中,现在这个为了偷懒,将Vue编译的结果放在了Jar中,然后直接启动了Jar包。
于是试了下,设置编码启动项目:
java -Dfile.encoding=utf-8 -jar tager-1.0-SNAPSHOT.jar
然后,问题解决了。不过心中始终留有疑惑,特此记录。