nohup 本身不会修改日志编码,日志“乱码”通常不是 nohup 的问题,而是编码环境不一致导致的。常见原因和解决办法如下:
locale
如果看到:
LANG=C
LC_ALL=
或不是 UTF-8,就容易出现中文乱码。
✅ 解决:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
(或 en_US.UTF-8)
然后重新启动程序:
nohup your_app > app.log 2>&1 &
有些程序(Java / Python / Node):
java -Dfile.encoding=UTF-8 -jar app.jar
export PYTHONIOENCODING=utf-8
即使日志是 UTF-8:
cat 正常vim 乱码 → vim 编码不对✅ 解决:
less、cat一般不会,但如果:
iconv就可能出问题。
locale
file app.log
cat app.log
如果:
file app.log 显示 UTF-8如果:
file app.log 显示 ISO-8859 / GBKexport LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
nohup your_command > app.log 2>&1 &
如果你愿意,可以告诉我:
我可以直接帮你定位是哪一层出的问题。