首頁 >運維 >linux運維 >linux下檔案亂碼怎麼辦?

linux下檔案亂碼怎麼辦?

藏色散人
藏色散人原創
2019-11-16 09:28:033940瀏覽

linux下檔案亂碼怎麼辦?

linux下檔案亂碼怎麼辦?

Linux下對檔案操作經常會遇見亂碼問題,我在網路上搜了一些解決方法,希望能對大家有所幫助。

如果你需要在Linux中操作windows下的文件,那麼你可能會經常遇到文件編碼轉換的問題。 Windows中預設的檔案格式是GBK(gb2312),而Linux一般都是UTF-8。

下面介紹一下,在Linux中如何查看檔案的編碼及如何進行對檔案進行編碼轉換。

推薦:《Linux教學

#檢視文件編碼 

在Linux中檢視文件編碼可以透過以下幾種方式: 

1.在Vim中可以直接檢視檔案編碼 

:set fileencoding

即可顯示檔案編碼格式。

如果你只是想查看其它編碼格式的檔案或想解決用Vim查看檔案亂碼的問題,那麼你可以在 

~/.vimrc 檔案中加入以下內容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動辨識檔案編碼(可以自動辨識UTF-8或GBK編碼的檔案),其實就是依照fileencodings提供的編碼清單嘗試,如果沒有找到適當的編碼,就用latin-1 (ASCII)編碼開啟。

檔案編碼轉換 

1.在Vim中直接進行轉換檔案編碼,例如將一個檔案轉換成utf-8格式 

:set fileencoding=utf-8

iconv 轉換,iconv的指令格式如下: 

iconv -f encoding -t encoding inputfile 

#例如將一個UTF-8 編碼的檔案轉換成GBK編碼 

iconv -f GBK -t UTF-8 file1 -o file2 

iconv -f gbk -t utf8 linux常用指令.txt > linux常用指令.txt.utf8

檔案名稱編碼轉換: 

從Linux 往windows拷貝檔案或從windows轉換到Linux拷貝文件,有時會出現中文檔案名稱亂碼的情況,出現這種問題的原因是因為,windows的檔案名稱中文編碼預設為GBK,而Linux中預設檔名編碼為UTF8,由於編碼不一致,所以導致了檔案名稱亂碼的問題,解決這個問題需要對檔案名稱進行轉碼。

在Linux中特別提供了一種工具convmv進行檔案名稱編碼的轉換,可以將檔案名稱從GBK轉換成UTF-8編碼,或從UTF-8轉換到GBK。 

首先看一下你的系統上是否安裝了convmv,如果沒安裝的話用: 

yum -y install convmv 

安裝。

下面看一下convmv的具體用法:

convmv -f 來源編碼-t 新編碼[選項] 檔名

##常用參數: 

-r 遞歸處理子資料夾 

–notest 真正進行操作,請注意在預設情況下是不對檔案進行真實操作的,而只是試驗。

–list 顯示所有支援的編碼 

–unescap 可以做一下轉義,例如把變成空格 

例如我們有一個utf8編碼的檔名,轉換成GBK編碼,指令如下:

convmv -f UTF-8 -t GBK –notest utf8編碼的檔名 

這樣轉換以後」utf8編碼的檔名」就會轉換成GBK編碼(只是檔案名稱編碼的轉換,檔案內容不會改變)

以上是linux下檔案亂碼怎麼辦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn