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下中文顯示亂碼問題
我的工作環境中,伺服器大部分都是linux系統,辦公電腦都是windows。使用伺服器的時候都是通過乙個ssh客戶端遠端登入到linux伺服器上去操作,經常會發生因為系統環境變數設定不合適,導致有中文顯示的地方會顯示為亂碼。乙個是執行程式後輸出中文的時候,乙個是用vi命令編輯乙個有中文的檔案的時候,...
解決 Linux亂碼問題
最近在用linux rea hat 企業版5 碰到了中文字型亂碼問題,網上搜尋一些解決方案,發現很多文章寫得很長,看著頭暈。1 vim開啟乙個檔案的時候中文注釋部分顯示亂碼,解決方法 在當前使用者下新建乙個.vimrc,加入如下 步驟為 vim root vimrc 敲入以下 set fileenc...
Linux下解決中文亂碼
第一步 用vi編輯器開啟 etc sysconfig 目錄下的i18n檔案,命令如下 root localhost vi etc sysconfig i18n 第二步 進入編輯狀態,新增如下內容 lang zh cn.gb18030 language zh cn.gb18030 zh cn.gb23...