远程Redhat 7服务器安装IntelliJ Idea遇Xming字符编码乱码求助
我之前在远程Linux服务器上用X11转发跑GUI程序时也遇到过字符乱码的坑,给你整理几个实测有效的解决步骤:
1. 先搞定本地Xming的编码配置
- 打开Xming的XLaunch向导,走到「Extra parameters」那一步,添加参数
-encoding utf-8或者-locale en_US.UTF-8,确保Xming用UTF-8处理显示内容。 - 启动Xming后,打开Windows的命令行(cmd/PowerShell),执行
set命令检查环境变量:确认LANG、LC_ALL是不是设为en_US.UTF-8。如果没有,手动设置:
设置完再重新连接远程服务器。set LANG=en_US.UTF-8
2. 配置远程Redhat 7的Locale环境
- 登录服务器后,先执行
locale命令,看看当前的LANG、LC_CTYPE、LC_ALL是不是都是UTF-8编码的locale(比如en_US.UTF-8)。 - 如果不是,先安装对应的locale包:
sudo yum install glibc-langpack-en - 临时生效的话,执行这两条命令:
export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 - 要永久生效的话,编辑
~/.bashrc或者/etc/profile文件,把上面两行export命令加进去,然后执行source ~/.bashrc让配置立刻生效。 - 最后用
locale -a确认en_US.UTF-8已经存在。
3. 给IntelliJ Idea指定编码参数启动
- 启动idea.sh的时候直接加JVM参数:
./idea.sh -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 - 嫌每次输麻烦的话,修改IntelliJ安装目录下的
bin/idea.vmoptions文件,添加两行:
保存后重启idea,以后启动就自动用这个编码配置了。-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
4. 检查SSH的X11转发编码传递
- 如果你用Putty/Xshell这类SSH客户端,要确保X11转发功能开启,并且配置了locale传递:
- Putty:在「Connection -> Data -> Environment variables」里添加
LANG=en_US.UTF-8; - Xshell:在会话属性的「环境变量」里添加同样的配置。
- Putty:在「Connection -> Data -> Environment variables」里添加
- 另外,远程服务器的
/etc/ssh/sshd_config文件里,要确保AcceptEnv LANG LC_*这一行没有被注释掉,这样客户端的locale设置才能传到服务器。修改后重启sshd服务:sudo systemctl restart sshd
内容的提问来源于stack exchange,提问作者Károly Módos
相关产品推荐
相关产品推荐

