从linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名 中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。
在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。
如下是详细操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[root@chy01 images]
# ls
???_20170808142307.png bg_1.png icon10.png n1.png QQ??20170808124717.png
20170814_3089106_1_1020482_30008_0.JPG bg_2.png icon11.png n2.png QQ??20170808124835.png
20170814_3089107_2_1020482_30008_0.JPG bg_3.png icon1.jpg n3.png QQ??20170808125029.png
20170814_3089108_3_1020482_30008_0.JPG bg_4.png icon2.png n4.png QQ??20170808125556.png
2017082301.JPG bg_5.png icon3.png n5.png SS1-1.png
2017082302.JPG bg_6.png icon4.png nav_ico.png ss1-2.png
2.jpg bg_7.jpg icon5.png peixuntu.jpg ss1.png
333.png bg_9.jpg icon6.png ?????.png transparent.gif
444.png f1.jpg icon7.png ??????.png xztb01.png
about2_wpsA087.tmp.png f2.jpg icon8.png ??????.png xztb.png
about2_wpsA088.tmp.jpg f3.jpg icon9.png ??????.png ziliaoxiazai.png
about2_wpsA089.tmp.jpg f4.jpg logo 1.jpg ????????.png ??????.png
about2_wpsA08A.tmp.png f5.jpg logo2.jpg QQ??20170808105711.png
about3_wps8BA0.tmp.png gywm.jpg logo.png QQ??20170808124354.png
(如上查看时有很多的乱码)
[root@chy01 wwwroot]
# yum install -y convmv.noarch
(需要安装这个包)
[root@chy01
test
.com]
# convmv -f gb2312 -t UTF-8 --notest -r Assets
mv
"Assets/t/±¨±ls"
"Assets/t/考试报名表.xls"
mv
"Assets/t/.rar"
"Assets/t/考试模拟器.rar"
mv
"Assets/t/′.png"
"Assets/t/代理证.png"
mv
"Assets/t/±¨±).xls"
"Assets/t/考试报名表(1).xls"
mv
"Assets/upload/QQ20170809100124.png"
"Assets/upload/QQ截图20170809100124.png"
mv
"Assets/upload/3jpg"
"Assets/upload/xx.jpg"
mv
"Assets/upload/ˉ.jpg"
"Assets/upload/xx.jpg"
mv
"Assets/upload/a′jpg"
"Assets/upload/xxx.jpg"
mv
"Assets/upload/1.jpg"
"Assets/upload/xxx.jpg"
mv
"Assets/upload/aμ聦.jpg"
"Assets/upload/xxx.jpg"
Ready!
如上就是用convmv来解决的,如下是它的语法介绍:
命令使用:
格式:convmv -f 源编码 -t 新编码 [选项] 文件名/目录名
GB2312->UTF-8
1
2
convmv -f gb2312 -t UTF-8 --notest -r 目录
convmv -f gb2312 -t UTF-8 --notest 测试.txt
(说明windows中默认的是gb2312 需要转换为linux中的utf-8,命令解释:
-f 参数是指出转换前的编码;
-t 是转换后的编码;
-r 递归处理子文件夹;
--notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验)
|
本文转自我不是瘦子51CTO博客,原文链接:http://blog.51cto.com/chy940405/1980658,如需转载请自行联系原作者