linux shell 中檔案編碼檢視及轉換方法

2021-09-12 03:23:24 字數 1673 閱讀 2186

一、檢視檔案編碼。

在開啟檔案的時候輸入:set fileencoding

即可顯示檔案編碼格式。

二、檔案編碼轉換

1、在vim中直接進行轉換檔案編碼,比如將乙個檔案轉換成utf-8格式

在開啟的檔案中輸入:set fileencoding=utf-8

2、使用iconv轉換,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如將乙個 編碼的檔案轉換成gbk編碼

iconv -f utf-8 -t gbk file1 -o file2

iconv的用法:

用法: iconv [選項...] [檔案...]

convert encoding of given files from one encoding to another.

輸入/輸出格式規範:

-f, --from-code=name 原始文字編碼

-t, --to-code=name 輸出編碼

資訊:-l, --list 列舉所有已知的字符集

輸出控制:

-c 從輸出中忽略無效的字元

-o, --output=file 輸出檔案

-s, --silent suppress warnings

--verbose 列印進度資訊

-?, --help 給出該系統求助列表

--usage 給出簡要的用法資訊

-v, --version 列印程式版本號

將gb2312編碼的檔案內容轉換為utf-8

iconv -f gb2312 -t utf-8 file-name > new-file-name

將utf-8編碼的檔案內容轉換為gb2312

iconv -f utf-8 -t gb2312 file-name > new-file-name

注意:轉換前一定要將重要的檔案備份,特別是轉換檔案內容的時候

三、檔名編碼轉換:

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

在linux中專門提供了一種工具convmv進行檔名編碼的轉換,可以將檔名從gbk轉換成utf-8編碼,或者從utf-8轉換到gbk。

1、先看一下你的系統上是否安裝了convmv,如果沒安裝的話在終端輸入下面的命令安裝:

sudo yum -y install convmv

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

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

常用引數:

-r 遞迴處理子資料夾

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

--list 顯示所有支援的編碼

--unescap 可以做一下轉義,比如把%20變成空格

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

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

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

Python 檔案讀寫,中文編碼

寫入檔案 file open e baidunetdiskdownload 基礎 day11 1.txt w r讀,w寫 覆蓋 wb以二進位制寫,a寫 不覆蓋 file open r e baidunetdiskdownload 基礎 day11 1.txt w mystr yingwen file...

Python檔案中文編碼問題

需要讀取utf 8編碼的中文檔案,先利用sublime text軟體將它改成無dom的編碼,並且在第一行寫 encoding utf 8 然後用以下 with codecs.open note path,r utf 8 as f line f.readline print line 這樣就可以正確地...

Linux shell指令碼編碼問題

在linux中執行.sh指令碼,異常 bin sh m bad interpreter no such file or directory。分析 這是不同系統編碼格式引起的 在windows系統中編輯的.sh檔案可能有不可見字元,所以在linux系統下執行會報以上異常資訊。解決 1 在windows...