从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 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验)

希望看过的童鞋多多指教,谢谢!j_0063.gifj_0063.gif