Ubuntu 下 VNC 出现乱码(一般是中文变成方块、问号或乱码),核心原因通常是:VNC 会话没有使用正确的语言环境(locale)或缺少中文字体。下面按常见原因和解决办法说明。
locale
如果看到:
LANG=C
LC_ALL=C
或没有 zh_CN.UTF-8,VNC 很容易乱码。
sudo apt update
sudo apt install locales
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
编辑你的 VNC 启动文件,例如:
~/.vnc/xstartup
在文件开头加入:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
示例(GNOME / Xfce 常见):
#!/bin/sh
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
startxfce4 &
然后重启 VNC:
vncserver -kill :1
vncserver :1
即使 locale 正确,没有字体也会乱码。
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei
安装后重启 VNC 或重新登录。
有些桌面在 VNC 下兼容性更好:
sudo apt install xfce4 xfce4-goodies
.vnc/xstartup 使用:
startxfce4 &
不同 VNC 表现不同:
| VNC | 说明 |
|---|---|
| TigerVNC | ✅ 推荐 |
| RealVNC | 商用,字体问题少 |
| tightvnc | 老,容易乱码 |
安装 TigerVNC:
sudo apt install tigervnc-standalone-server
在 VNC 客户端中:
locale 是 zh_CN.UTF-8.vnc/xstartup 设置了 LANG如果你愿意,可以告诉我:
我可以给你一份可直接用的 xstartup 配置。