👨🎓博主简介
🏅CSDN博客专家
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗
文章目录
- 一、乱码问题排查
- 1、要先看服务器的语言环境
- 2、查看服务器是否支持中文类型
- 3、查看上传文件的工具编码类型【这里以winscp来举例】
- 二、如果已经上传了文件需要修改文件乱码
- 三、实例【centos系统】
一、乱码问题排查
1、要先看服务器的语言环境
# 执行locale查看当前的语言环境
locale
是zh_CN.UTF-8
,有的服务器是 en_US.UTF-8
这两个都可以;
如果没有,就需要配置:
# 方法一、修改/etc/locale.conf文件
echo "LANG=en_US.UTF-8" /etc/locale.conf
# 加载/etc/locale.conf文件,使其生效
source /etc/locale.conf
# 方法二、使用export LANG=en_US.UTF-8命令设置正确的语言环境(临时的)
export LANG=en_US.UTF-8
# 方法三、将环境变量添加到/etc/profile
echo "export LANG=en_US.UTF-8" >> /etc/profile
# 加载/etc/profile文件,使其生效
source /etc/profile
2、查看服务器是否支持中文类型
locale -a |grep "zh_CN"
如果没有的话就需要下载一个命令
yum groupinstall chinese-support
下载完之后使用该中文包
echo "LANG=zh_CN.UTF-8" /etc/locale.conf
# 加载/etc/locale.conf文件,使其生效
source /etc/locale.conf
3、查看上传文件的工具编码类型【这里以winscp来举例】
新建一个服务器连接
添加主机名等信息,然后点高级
环境 – > 文件名utf8编码,给开启;
二、如果已经上传了文件需要修改文件乱码
# 安装软件(centos)
yum -y install convmv
# 安装软件(ubuntu)
apt-get update -y
apt -y install convmv
# 使用
convmv -f gbk -t utf-8 -r --notest /home/要操作的文件
convmv -f gbk -t utf-8 -r --notest 要操作的文件
参数:
参数 | 参数解析 |
---|---|
-f | 源编码 |
-t | 要修改的编码 |
-r | 递归处理子文件夹 |
-i | 交互模式(询问每一个转换,防止误操作) |
–list | 显示所有可用编码 |
–nosmart | 如果是utf8文件,忽略 |
–notest | 直接转换不测试 |
–replace | 文件相同直接替换 |
–unescape | 可以做一下转义,比如把%20变成空格 |
–upper | 全部转换成大写 |
–lower | 全部转换成小定 |
其他:
linux下有许多方便的小工具来转换编码:
-
文本内容转换
iconv
-
文件名转换
convmv
三、实例【centos系统】
上传的中午文件或者图片都是乱码,我们要以第二种方式,已经上传了的文件进行乱码修改;
1、首先安装命令
yum -y install convmv
2、对乱码文件、目录下的所有乱码文件进行格式转换
- 对单个乱码文件进行格式转换(一般用于目录下只有单个文件或者可以复制的时候转换,乱码是打不出来的)
convmv -f gbk -t utf-8 -r --notest ?龳??????.jpg
- 对整个目录下所有的乱码文件进行格式转换
convmv -f gbk -t utf-8 -r --notest /home/lcy/cs/luanma/
格式转换完成。