你问的“CentOS Java 编码怎么修改”,一般常见有 3 种场景,我分别说明,你可以对号入座:
Java 程序运行时默认编码受系统 LANG 影响,可强制指定:
java -Dfile.encoding=UTF-8 -jar yourApp.jar
常用编码:
UTF-8GBKISO-8859-1JAVA_OPTS="-Dfile.encoding=UTF-8"
java $JAVA_OPTS -jar app.jar
locale
localectl set-locale LANG=zh_CN.UTF-8
或手动编辑:
vi /etc/locale.conf
内容:
LANG="zh_CN.UTF-8"
生效:
source /etc/locale.conf
⚠️ 如果系统没有
zh_CN.UTF-8,先生成:
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
<Connector port="8080"
URIEncoding="UTF-8"
useBodyEncodingForURI="true" />
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
System.out.println(Charset.defaultCharset());
或命令行:
java -XshowSettings:properties -version 2>&1 | grep encoding
❌ 只改系统编码,Java 不重启不生效
❌ 数据库、文件、接口编码要一致(UTF-8 最稳)
❌ Windows 默认 GBK,CentOS 默认 UTF-8,跨平台容易乱码
如果你能告诉我:
我可以直接给你精确改法。