问题发现

最近在公司服务器上部署前端项目时出现了服务器中文乱码问题,导致前端样式无法加载,但是在服务器上创建中文文件或编辑中文文本又显示正常,查询了很多方案都没有解决,最后通过自己排查解决了,因此记录一下。

问题复现

下面通过两张图复现一下出现的问题:

image-20230811151219234

image-20230811151637071

这里我使用的是xftp7上传文件,可以看到文件传输后在xftp7软件上显示正常,但是在服务器上却乱码了。

问题解决

这里我先不说我的解决方案,先按照常规思路来排查一下问题。

查看是否安装中文软件包

执行以下命令查看是否安装了中文软件包

# locale -a |grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

这里可以看到我已经安装了,如果没有安装请执行以下命令安装

# yum groupinstall "fonts" -y

查看当前系统语言环境

先查看系统语言环境配置文件

# cat /etc/locale.conf
LANG="zh_CN.UTF-8"

可以看到我这里当前已经是中文语言环境,如果你这里配置文件显示的是en_US或者en_US.UTF-8,请执行以下命令修改

# vim /etc/locale.conf
LANG="zh_CN.UTF-8"
# source /etc/locale.conf

然后再次查看当前系统语言

# echo $LANG
zh_CN.UTF-8

# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

查看文件传输工具配置

到这里已经可以排除是服务器问题了,然后想到了会不会是文件传输工具的问题,于是去Xftp7上查找相关配置,果然找到了文件编码选项,发现默认文件编码是GB2312,将其修改为UTF-8后就正常了。附上修改的配置和问题解决的图片

image-20230811155619583

image-20230811155824439

image-20230811160119079

image-20230811160237336

可以看到,现在已经显示正常了,问题成功解决。

注意:

1、修改完需要重新连接服务器才会生效

2、这里只是修改的单个会话连接,其他连接可以参照以上配置修改,也可在Xftp7上文件→默认会话属性→选项→编码中设置,切记,该配置仅在之后创建的会话连接中生效,之前的配置不会修改