linux文件内容乱码怎么解决,window到linux文件名乱码和文件内容乱码解决总结

window系统一般文件名编码为gbk,文件内容编码这个需要通过编辑器查看或者设置,找个editplus文本编辑器就可以处理文本内容编码。

那么在window上显示正常的文件到linux上的时候,常常会因为中文问题导致乱码,比如文件名乱码和文件内容乱码。

查看linux设置的编码:

[root ~]#  echo $LANG

zh_CN.UTF-8

[root ~]# 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=

上门是基于centos6.5查询和设置,之前是设置USA.UTF-8,后面把它设置支持中文zh_CN.UTF-8,需要安装支持中文的包

yum -y groupinstall chinese-support

修改和设置编码

[root ~]# vim /etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

[root ~]# source /etc/sysconfig/i18n

经过上面的设置后,开始基于xftp和xshell做下面的实验。

xshell在文件--》属性--》终端设置编码,xftp暂时不设置。

92b6b996a28eca12c212b21afca866d9.png

一、linux文件名乱码。

1、创建测试目录和测试文件,文件名带有中文字符,文件内容带有中文字符。通过xftp上传到linux服务器:

cdb86ddceec2c3340c20ec6e9ac60b7d.png

在xftp里面显示中文一切正常。

2、在linux下面显示发现文件名乱码。同时用file 文件名查看当前文件

85db8e5377b2a942affdae6200350269.png

此时做一个转码操作:

convmv --notest --nosmart -f gbk -t utf8 -r 文件或者目录

-f from从什么编码

-t to改成什么编码

--nosmart 如果已经是utf-8 忽略

-r 包含所有子目录

--notest 不加表示只列出有什么需要转换的,不做实际转换,所以一定要加

b7b6b481030366fdd50bcdc31be11f8d.png

上面步骤已经搞定文件名乱码问题了,下面是通过设置xftp编码对应linux编码。

3、xftp文件--》属性--》选项,设置为utf-8编码--文件名传输编码。这样显示的文件名就直接是uft-8编码,linux显示就不会是乱码。

afd33cc15e7f2d6acde9fa262825fcb1.png

c7a95fe4209747bddd9a70420edfab4c.png

二、文件内容乱码。

1、用cat 查看发现内容乱码

ab17b2a7e3c8a6494222a5725d90d4df.png

2、iconv -f gbk -t utf8 test测试.txt -o test测试.txt

经过测试已经把文件乱码内容成功转码,

同时iconv不做覆盖的时候另外一种写法iconv -f gbk -t utf8 haha.txt > haha.txt.utf8

这种写法不能覆盖,原文件为空。

03186fb074754d8104b4922a00d0ce1f.png

3、另外一种就是平时写的sell脚本,在window那边传过来需要转码。

安装:yum install -y dos2unix

执行相关命令dos2unix  xxx.sh

f7283d71daf0aef4dc12138895f951ce.png

上面两种解决方法基本上解决了window到linux文件名乱码和文件内容问题,后续遇到新的问题再追加进来。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值