HCRM博客

CentOS 7 SSH终端中文文件名乱码问题解决方案

CentOS7 ssh终端中文文件名显示问号修复:别让乱码毁了你的远程操作

远程连上CentOS7,一敲ls,满屏“????.txt”瞬间血压拉满。不是文件丢了,是系统语言没对上号。今天把话挑明:三分钟搞定中文乱码,以后再也不用猜文件名。

CentOS 7 SSH终端中文文件名乱码问题解决方案-图1

先验伤:到底哪一步翻车

99%的问号来自两处——服务器没装中文包,或者SSH客户端编码没设UTF-8。把这两窟窿堵上,问号立刻现原形。

服务器端:两条命令让它说人话

登录后先整环境:

  1. 装语言包

    CentOS 7 SSH终端中文文件名乱码问题解决方案-图2

    yum install -y glibc-langpack-zh

    装完别急着庆祝,这只是弹药。

  2. 把系统语言改成中文

    localectl set-locale LANG=zh_CN.UTF-8

    执行完重新SSH登录,让配置生效。再ls,九成问号已变回汉字。

CentOS 7 SSH终端中文文件名乱码问题解决方案-图3

客户端:Xshell、PuTTY、Terminal一个都别放过

服务器已说中文,客户端也得听懂。

  • Xshell:文件→属性→终端→编码→选UTF-8→确定。
  • PuTTY:Window→Translation→Remote character set→选UTF-8→保存会话。
  • macOS Terminal:偏好→描述文件→高级→文本编码→UTF-8。

改完重开标签页,旧会话不生效。

漏网之鱼:文件名本身被压成GBK

如果历史文件是GBK编码,仍显示问号,用convmv批量转码:

convmv -f GBK -t UTF-8 --notest -r /目标目录

一行命令,回车瞬间完成整容。

一键自检脚本:10秒确认环境

把下面内容保存成checklang.sh,丢到服务器跑:

#!/bin/bash

echo "当前语言:$LANG"

echo "本地可用中文:$(locale -a | grep zh_CN)"

echo "终端编码:$LC_CTYPE"

三项都带UTF-8,说明配置已齐活;缺啥补啥,不再抓瞎。

常见作死现场TOP3

  1. 只改客户端不改服务器——问号照样蹦迪。
  2. 用默认的LANG=C——系统铁了心说英文。
  3. Win10自带SSH——老版本默认GBK,升级或换客户端。

实测效果:问号秒变汉字

按上面顺序操作,新登录窗口ls,原本“????.pdf”立刻回魂成“财务报告.pdf”。再scp、tar、mv,文件名全程不再翻车。

下次遇到CentOS7 SSH中文问号,别急着重装系统,先照这个清单打钩。三分钟搞定,比拍桌子骂娘快多了。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41413.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~