# 查看当前系统编码
echo $LANG
# 临时设置UTF-8编码(适用于大多数现代系统)
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# 永久设置(添加到~/.bashrc或~/.bash_profile)
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
source ~/.bashrc
# 查看可用locale
locale -a
# 如果没有en_US.UTF-8,生成它
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
如果通过SSH连接出现乱码:
# 连接时指定编码
ssh -o "SendEnv LANG en_US.UTF-8" user@hostname
# 或者在客户端配置(~/.ssh/config)
Host *
SendEnv LANG LC_*
对于特定应用(如vim、less等):
# 对于vim
echo "set encoding=utf-8" >> ~/.vimrc
# 对于less
export LESSCHARSET=utf-8
# 使用file命令检查文件编码
file filename
# 转换文件编码(如从GBK转UTF-8)
iconv -f GBK -t UTF-8 input.txt -o output.txt
如果上述方法无效,可以尝试:
# 查看当前所有locale设置
locale
# 强制所有程序使用UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
# 重启系统使更改生效
sudo reboot
通过以上步骤,大多数Linux终端乱码问题应该能够得到解决。如果问题仍然存在,可能需要检查特定应用程序的配置或考虑重新安装终端模拟器。