启动 Springboot 方式不同,导致无法读取中文文件名的文件
非登录方式启动 springboot sshpass -p "xxx" ssh user@192.168.xx.xxx "cd /data/app/java/ && /data/app/java/deploy.sh"
deploy.sh 内容
#!/bin/bash
set -e
# 远程调用 启动后支持中文
export LANG=zh_CN.UTF-8
nohup java \-XX:+HeapDumpOnOutOfMemoryError \-XX:HeapDumpPath=/data/app/ksdl-java/log/heapdumps/ \-jar xxxServer.jar \--spring.profiles.active=test-cust >catalina.out 2>&1 &
上传文件报错
Malformed input or input contains unmappable characters: /home/uploadPath/2025/09/02/纸箱xx(2)_20250902185516A001.xlsx
deploy.sh增加一下配置,问题解决
export LC_ALL=zh_CN.UTF-8 # 强制所有分类
发现:
1.win10 系统 使用bat 执行 shpass -p "xxx" ssh user@192.168.xx.xxx "cd /data/app/java/ && /data/app/java/deploy.sh",没有这个问题
2.使用-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8也能解决,但是其它功能会出现问题:easyExcel 解析Excel文档内容会出现无法解决的问题。
nohup java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar xxxapplicationServer.jar --spring.profiles.active=test- >catalina.out 2>&1 &
3. ssh 登录进入系统,直接执行deploy.sh没有问题