Linux下對檔案操作時出現亂碼怎麼辦?

2021-07-24 22:28:51 字數 1553 閱讀 1587

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

如果你需要在linux中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk(gb2312),而linux一般都是utf-8。下面介紹一下,在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 可以做一下轉義,比如把%20變成空格 

比如我們有乙個utf8編碼的檔名,轉換成gbk編碼,命令如下:

convmv -f utf-8 -t gbk –notest utf8編碼的檔名 

這樣轉換以後」utf8編碼的檔名」會被轉換成gbk編碼(只是檔名編碼的轉換,檔案內容不會發生變化)

Linux下對檔案許可權的相關操作

1.改變使用者對檔案的讀寫執行許可權 chmod 三種基本許可權 r讀 數值表示為4w寫 數值表示為2 x可執行 數值表示為1 例 若檔案test.txt的許可權為 rw rw r 則表示如下資訊 rw rw r 一共十個字元,分成四段。第乙個字元 表示普通檔案 這個位置還可能會出現 l 鏈結 d ...

Linux下TOMCAT中日誌出現中文亂碼

紅帽子as4,其中tomcat為6.0。結果tomcat中日誌出現中文亂碼 解決方法修改i18n 最後的配置為 root linux etc more etc sysconfig i18n lang zh cn.utf 8 supported zh cn.utf 8 zh cn zh sysfont...

window和linux檔案互拷貝出現亂碼問題

在windows上檔案編碼預設是gbk,而linux一般是utf 8。所以一般檔案上傳上去會有亂碼問題。使用遠端傳輸工具比如xftp可以在屬性裡選擇utf 8,一般傳輸工具都這樣設定。也可以傳輸上去,用轉換工具解決。比如convmv 在centos 用命令 yum install convmv co...