(1).文件名亂碼html
這並非全部人都會碰到的問題,通常常見於使用putty的用戶。使用convmv命令能夠解決這個問題。linux
我寫詳細一點還原真實場景,首先我來上傳一個測試文件「a此文件在windows下打開正常-到linux下vim打開亂碼.txt」。在確保putty能夠正常鏈接到Linux上,打開Windows上的命令提示符輸入pscp命令(pscp [Windows上的文件位置,能夠絕對路徑,能夠相對路徑] [以什麼用戶登陸Linux]@[Linux的IP地址]:[傳到Linux上什麼位置,絕對路徑])。vim
C:\Users\xuefei>pscp c:\Users\xuefei\Desktop\a此文件在windows下打開正常-到linux 下vim打開亂碼.txt xf@192.168.0.10:/home/xf/ xf@192.168.0.10's password: a此文件在windows下打開正?| 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%
這就上傳好,下面咱們來Linux下看看上傳後的文件windows
[xf@xuexi ~]$ ls 1 secondDir 視頻 下載 a???ļ???windows?´???????-??linux??vim????????.txt 公共 圖片 音樂 mainDir 模板 文檔 桌面
能夠看到有一個a開頭的亂碼文件名,看一下本身有沒有convmv命令,沒有就yum安裝一下,記住這時須要使用root用戶bash
[root@xuexi ~]# yum install convmv 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.aliyun.com * updates: mirrors.cn99.com CentOS7 | 3.6 kB 00:00
安裝完convmv命令,能夠--help一下看看如何使用。這裏會使用到-f選項(源文件編碼格式),-t(想要的格式),--notest選項(文件從新命名)。若是是目錄還須要-r選項(遍歷目錄)學習
[root@xuexi ~]# convmv -f gbk -t utf8 --notest /home/xf/a���ļ���windows�´�������-��linux��vim��������.txt mv "/home/xf/a���ļ���windows�´�������-��linux��vim��������.txt" "/home/xf/a此文件在windows下打開正常-到linux下vim打開亂碼.txt" Ready! [root@xuexi ~]# ls /home/xf/ 1 secondDir 視頻 下載 a此文件在windows下打開正常-到linux下vim打開亂碼.txt 公共 圖片 音樂 mainDir 模板 文檔 桌面
看,這就完成了。測試
注意:Windows編碼是gb2312,個人Linux編碼是UTF-8。想要看本身的編碼能夠使用locale查看。詳細瞭解能夠看 http://www.javashuo.com/article/p-pfwfwmcb-bm.html編碼
[xf@xuexi ~]$ 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=
(2).文件內的亂碼spa
轉換完文件名的亂碼其實並無結束,由於文件內容仍是亂碼插件
[xf@xuexi ~]$ cat a此文件在windows下打開正常-到linux下vim打開亂碼.txt #!/bin/bash echo 'ѧϰ' echo 'ѧϰ' echo 'ѧϰ' echo 'ѧϰ'
這時須要用到iconv命令,沒有yum安裝一下。這裏會用到-f選項(源文件格式),-t選項(想要的格式),-o選項(輸出文件)
[xf@xuexi ~]$ iconv -f gbk -t utf8 a此文件在windows下打開正常-到linux下vim打開亂碼.txt -o a此文件在windows下打開正常-到linux下vim打開亂碼.txt //我這裏將編譯後的文件輸出到源文件 [xf@xuexi ~]$ cat a此文件在windows下打開正常-到linux下vim打開亂碼.txt #!/bin/bash echo '學習' echo '學習' echo '學習' echo '學習'
(3).擴展
若是你對文件名沒有要求,或文件名輸入並不複雜,能夠將直接使用iconv命令從新給一個新的文件名
[xf@xuexi ~]$ ls 1 secondDir 視頻 下載 a???ļ???windows?´???????-??linux??vim????????.txt 公共 圖片 音樂 mainDir 模板 文檔 桌面 [xf@xuexi ~]$ iconv -f gbk -t utf8 a���ļ���windows�´�������-��linux��vim��������.txt -o a.txt [xf@xuexi ~]$ ls 1 mainDir 模板 文檔 桌面 a???ļ???windows?´???????-??linux??vim????????.txt secondDir 視頻 下載 a.txt 公共 圖片 音樂 [xf@xuexi ~]$ cat a.txt #!/bin/bash echo '學習' echo '學習' echo '學習' [xf@xuexi ~]$ rm a???ļ???windows?´???????-??linux??vim????????.txt [xf@xuexi ~]$ ls 1 a.txt mainDir secondDir 公共 模板 視頻 圖片 文檔 下載 音樂 桌面