服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-14 简米科技 4,264 字 10 分钟阅读

虚拟机汉字显示乱码怎么办,虚拟机中文乱码怎么解决?

导读虚拟机汉字乱码通常由字符集不一致、系统缺少中文字体或终端编码错误引起,按“系统环境变量→字体→远程连接工具→文件编码”的顺序逐层排查,多数情况下可在几分钟内解决,乱码从何而来:先判断故障类型虚拟机出现汉字乱码时,先别急着装字体或改系统,观察乱码出现的具体场景,能直接缩小排查范围,系统界面乱码:桌面、菜单、系统提……

虚拟机汉字乱码通常由字符集不一致、系统缺少中文字体或终端编码错误引起,按“系统环境变量→字体→远程连接工具→文件编码”的顺序逐层排查,多数情况下可在几分钟内解决。

乱码从何而来:先判断故障类型

虚拟机出现汉字乱码时,先别急着装字体或改系统,观察乱码出现的具体场景,能直接缩小排查范围。

  • 系统界面乱码:桌面、菜单、系统提示全是方块或问号,说明系统缺少中文字体包或安装时未启用中文支持。
  • 终端字符乱码:命令行中中文变成乱码,但图形界面显示正常,这通常是终端编码与系统编码不匹配。
  • 乱码:打开某个文本文件、代码文件或日志文件时中文混乱,但系统本身显示正常,这是文件存储编码问题。
  • 压缩包或网页乱码:解压后文件名乱码、网页显示乱码,常见于文件名编码和网页未声明字符集。

定位到具体场景后,按照下面的方案逐一处理。

虚拟机中文显示乱码怎么解决:系统层面需要三步排查

检查系统语言环境与字符集

绝大多数虚拟机乱码的根源,是系统没有安装配置好中文语言环境。

第一步:查看当前语言环境

在终端输入以下命令确认系统语言:

locale

如果输出中 LANG 显示为 en_US.UTF-8 或 POSIX,说明系统默认不是中文环境。

第二步:安装或切换中文语言包

Debian/Ubuntu 系命令如下:

sudo apt update
sudo apt install language-pack-zh-hans
sudo update-locale LANG=zh_CN.UTF-8

CentOS/RHEL/Fedora 系:

sudo dnf install langpacks-zh_CN
sudo localectl set-locale LANG=zh_CN.UTF-8

执行完毕后重新登录会话,或重启虚拟机生效,执行 locale 命令确认 LANG=zh_CN.UTF-8 即表示切换成功。

第三步:开启系统自带中文输入法框架

Linux 下常用 fcitx5 或 ibus,以 fcitx5 为例:

sudo apt install fcitx5 fcitx5-chinese-addons

安装后设置环境变量,在 ~/.bashrc 或 ~/.profile 中追加:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

系统语言正确但依然乱码:81%的案例卡在字体缺失

行业共识认为,图形界面中文字符显示为方块或空白,是系统中文字体缺失导致的。 即使语言环境为中文,没有渲染中文所需的字体,系统也无法正确绘制汉字。

虚拟机安装中文语言包后字体仍然异常怎么办

Debian/Ubuntu 安装中文字体:

sudo apt install fonts-noto-cjk

CentOS/RHEL/Fedora 安装中文字体:

sudo dnf install google-noto-sans-cjk-fonts

安装后用 fc-list :lang=zh 查看已安装的中文字体,命令有输出,说明字体已就位,轻量级桌面环境可额外安装 fonts-wqy-microhei(文泉驿微米黑)作为补充,重启图形环境后,乱码应明显改善。

终端和 SSH 连接出现中文乱码的专项处理

通过 Xshell、PuTTY、SecureCRT 等工具远程连接虚拟机时产生乱码,属于本地终端编码与服务端编码不一致。

SecureCRT 中文乱码是编码切换问题

以 SecureCRT 为例,操作路径为:选项 → 会话选项 → 外观 → 字符编码,将编码切换为 UTF-8。

其他工具的对应设置:

  • Xshell:属性 → 终端 → 编码,选择 UTF-8。
  • Windows Terminal:设置 → 配置文件 → 外观 → 字体和编码,确保为 UTF-8。
  • PuTTY:Window → Translation,将 Remote character set 设为 UTF-8,并勾选 “Use Unicode line drawing code points”。

Linux 虚拟机中文乱码通过终端设置也能修复

如果终端无法显示中文,配置 LANG 环境变量也能根治。

编辑 ~/.bashrc 文件,添加:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

保存后执行 source ~/.bashrc 使其立即生效。

Windows 宿主机下编辑 Linux 文件导致的乱码

在 Windows 记事本中编辑的文件默认使用 GBK 编码,放到 Linux 虚拟机里查看时,中文会显示为乱码。

场景还原:运维人员在 Windows 下用记事本修改了 Nginx 配置文件,上传到 Linux 虚拟机,重启服务后日志中所有中文注释全部乱码。

解决方案:统一文件编码,在 Linux 下用 file 命令确认编码:

file /etc/nginx/nginx.conf

输出显示 ISO-8859 或 GBK 编码时,用 iconv 转换:

iconv -f GBK -t UTF-8 /etc/nginx/nginx.conf > /tmp/nginx.conf
sudo mv /tmp/nginx.conf /etc/nginx/nginx.conf

后续编辑统一使用 VS Code、Notepad++ 等工具,并在右下角将编码切换为 UTF-8。
乱码与压缩包文件名乱码的处理

识别文件原始编码

统计显示,近几年互联网上分发的文本资源和技术文档,超过七成采用 UTF-8 编码,但国内一些旧系统仍会生成 GBK/GB18030 编码的文本文件。

用 file -i 查看文件编码:

file -i example.txt

结果中 charset=utf-8 表示正常,charset=iso-8859-1 或 charset=unknown-8bit 则需要转换。

批量转换目录下所有文本文件:

find /data/files -type f -name ".txt" -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \;

解压后文件名乱码的修正

Windows 下压缩的 ZIP 包,文件名常见编码为 GBK,而 Linux 解压工具默认按 UTF-8 处理,导致文件名乱码。

安装 unar 工具:

sudo apt install unar
unar 中文文件名.zip

unar 会自动检测编码,已解压的乱码文件,可用 convmv 修正:

sudo apt install convmv
convmv -f GBK -t UTF-8 -r --notest /路径/目录

虚拟机数据库中文乱码的修复方案

使用 MySQL 或 PostgreSQL 时,中文乱码问题相当常见,下面以 MySQL 为例解决:

场景:PHP 网站部署后数据库乱码

故障还原:程序员部署了一整套 PHP 网站,页面从数据库调取的中文全部问号。

排查步骤:

  1. 先看数据库字符集:SHOW VARIABLES LIKE 'character_set%';
  2. 确认结果中 character_set_server 和 character_set_database 是否为 utf8mb4。
  3. 连接层设置:在 JDBC 或 PHP PDO 连接串中追加 useUnicode=true&characterEncoding=utf8。

完整的操作路径:

ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

对已有数据表,逐表修改:

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改 my.cnf 中 [mysqld] 段参数,使设置持久化生效:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

修改完成后重启 MySQL 服务,把连接串编码对齐,乱码即消失。核心在于:数据库连接、库、表、客户端四个环节的字符集必须统一。

虚拟机显示乱码的常见问题解答

虚拟机 Linux 终端正常但 vi 编辑中文乱码

vi/vim 无法正确识别文件编码导致,编辑 ~/.vimrc 添加以下内容:

set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312,gb18030,latin1
set termencoding=utf-8

保存后重新打开文件,中文即可正常显示。

VMware 虚拟机无法显示中文菜单

VMware Tools 未正确安装或系统缺少中文字体,先安装上文提到的 fonts-noto-cjk,再重装 VMware Tools:

sudo apt install open-vm-tools open-vm-tools-desktop

重启虚拟机后菜单通常可正常显示中文,如果安装的是精简版系统镜像,需要额外确认安装的是 Desktop 版本而非 Server 版本。

Windows 虚拟机内的软件界面乱码

Windows 虚拟机自身显示正常,但个别软件乱码,多为软件区域语言设置问题,在“控制面板 → 区域 → 管理 → 更改系统区域设置”中勾选 Beta 版使用 Unicode UTF-8 提供全球语言支持,重启后即可。


处理虚拟机乱码问题,核心逻辑就是走链路排查:系统语言环境 → 字体 → 终端编码 → 文件编码 → 应用层字符集,每一步都是闭环操作,验证通过后再进入下一步,按照这个顺序操作,绝大多数乱码问题都能快速解决。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱