在 Debian 里 dmesg 显示“乱码”,通常不是真正的编码损坏,而是以下几种常见原因之一:
最常见原因。
如果系统 locale 不是 UTF-8,或终端不支持中文,内核日志中的中文会变成乱码。
检查:
locale
echo $LANG
解决:
sudo dpkg-reconfigure locales
# 选择 en_US.UTF-8 或 zh_CN.UTF-8
并确保终端使用 UTF-8(如 xterm、alacritty、Windows Terminal 都支持)。
dmesg 输出的是内核 ring buffer,有时会包含:
这些本来就不是给人看的“文字”,显示出来就是乱码。
例如:
[ 0.000000] \x00\x01\x02...
这是正常的,不是系统故障。
比如:
cat /dev/kmsg
或重定向后又用错误编码打开。
推荐方式:
dmesg
# 或
journalctl -k
如果是:
也会导致“乱码”。
解决:
如果真的是:
可能是:
可检查:
dmesg | grep -i error
smartctl -a /dev/sda
memtester
locale
dmesg | head
journalctl -k | head
如果你愿意,可以把具体的乱码截图或文本贴出来,我可以直接判断是哪种情况。