首页 > 解决方案 > 运行spring boot fat jar时的不同字符编码

问题描述

1. 背景

locale在我的 CentOS 中的结果

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

我的 ITerm 字符编码是 UTF-8 &&.bashrc我本地 Mac 机器中的文件有以下语句:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

2.不同的字符编码

我的 CentoS 中有一个弹簧靴脂肪罐。

当我运行nohup java -jar springboot-test-demo-0.0.1-SNAPSHOT.jar >> foo.log &ORnohup java -jar -Dfile.encoding=UTF8 springboot-test-demo-0.0.1-SNAPSHOT.jar >> bar.log &时,我的日志文件得到了相同的结果。

file *.log

bar.log: ASCII text
foo.log: ASCII text

当我的同事使用他的 Mac 机器登录我的 CentOS 机器并运行上述命令时,日志具有不同的字符编码。

file *.log

bar.log: UTF-8 Unicode text
foo.log: UTF-8 Unicode text

我想要UTF-8 Unicode text字符编码,而不是ASCII text.

我怎么做?谢谢。

标签: javaspringspring-bootencoding

解决方案


推荐阅读