linux轉碼命令列和python兩種實現

2021-06-27 12:14:17 字數 1326 閱讀 7330

今天從windows拷到linux的檔案出現亂碼,其實直接通過file, iconv命令轉碼就行了

/*如果是命令列來實現的話,也是可以的,而且從某種程度上來說是可能更加便捷的*/

file genghao.cpp/*根據這個可以知道這個檔案的大概編碼型別*/

iconv -l/*看看我們的iconv工具是否支援這種編碼,不過不支援,選擇乙個比較接近的就行*/

iconv -f  ***x(原始編碼)-t yyy(你想要的編碼)genghao.cpp(原始檔案)genhao.cpp(目標檔案)

如果希望多了解下上面幾個指令,可以參考博文: 裡面同時有提到file工具可能出現誤判的情況。

作為乙個不安分的人,乙個小的功能可以通過不同的工具來實現,用指令碼來實現轉碼也是很方便的

什麼語言呢?其實php, python , shell ... , 甚至跟高階的c++,c都可以用相應的檔案操作和一些介面來實現

閒的蛋疼就想用python實現轉碼

import chardet

fp = open('genhao.cpp', 'r+')

/*readlines讀取檔案,以行為單位的乙個list*/

content ='\n'.join(fp.readlines())

print content

/*檔案指標回到檔案開頭*/

fp.seek(0)

/*read讀取整個檔案*/

content = fp.read()

print content

fp.seek(0)

/*readline讀取1行*/

tmp = fp.readline()

while tmp:

content += tmp

tmp = fp.readline()

print content

/*判斷檔案的編碼*/

charinfo = chardet.detect(content)

encoding = charinfo['encoding']

/*轉成utf-8*/

content = content.decode(encoding).encode('utf-8')

print content

搞定,等有時間吧其他工具的實現也寫寫。

按照慣例,水一句:語言,只是工具,想法和問題 才是重點

git 命令列 和 cmd命令列

設定全域性使用者名稱 git config global user.name 區域性把global換成local 檢視全域性 git config global list 檢視git的狀態 git status 初始化 git into 名字 新增乙個檔案 git add readme.txt 刪除...

Linux命令列基礎 常用的命令列

符號 符號含義 使用者目錄 也稱作家目錄 根路徑,即整個系統 所在當前目錄 當前目錄的上一級目錄 提示可以輸入命令列了 回車 carriage return 執行輸入的命令列 絕對路徑 開頭的路徑就是絕對路徑,不是這種開頭的就是相對路徑。命令列命令列的英文全寫 中文含義 pwdprint worki...

Linux命令列svn命令

1 linux命令列下將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 如果第一次使用svn,要使用 使用者名稱 密碼 svn checkout svn user password 簡寫 svn co 2 linu...