Linux的編碼及編碼轉換

来源:https://www.cnblogs.com/123fantao/archive/2018/01/04/8195680.html
-Advertisement-
Play Games

如果你需要在Linux中操作windows下的文件,那麼你可能會經常遇到文件編碼轉換的問題。Windows中預設的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下麵介紹一下,在Linux中如何查看文件的編碼及如何進行對文件進行編碼轉換。 查看文件編碼在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
2. 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編碼(只是文件名編碼的轉換,文件內容不會發生變化)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 單線程與隔離性 Redis是使用單線程的方式來執行事務的,事務以串列的方式運行,也就是說Redis中單個命令的執行和事務的執行都是線程安全的,不會相互影響,具有隔離性。 在多線程編程中,對於共用資源的訪問要十分的小心: 在不加鎖的情況下,num是不能保持為1的。 而在Redis中,併發執行單個命令具 ...
  • Python的 工具可以創建隔離的Python環境, 是`virtualenv`的進一步封裝工具,可以讓它更好用。 安裝 Linux 系統下: pip install virtualenvwrapper Windows 系統下: pip install virtualenvwrapper win 配 ...
  • 寫在前面的話 2017年對我來說真是多災多難的一年,在這過去的一年裡發生的種種不幸,促使我下定決心一切要重新開始。在去年的夏天從公司裸辭後,來到了一個陌生的城市開啟了新的求職歷程,萬萬沒想到的是,求職之路竟然如此艱難,以至於現在想起來還心有餘悸。新的一年,我希望自己能有一個全新的面貌,那麼就從堅持分 ...
  • UserAction類代碼: 調用UserService類中crud各種方法 UserService類代碼: 調用UserDao介面 介面實現類UserDaoImplements 運行Apach伺服器,地址欄輸入action 控制台結果 Spring Hibernate Struts2等的 xml配 ...
  • 1.介面Comparable<T> API 此介面強行對實現它的每個類的對象進行整體排序。這種排序被稱為類的自然排序,類的compareTo()方法被稱為它的自然比較方法。 實現此介面的對象列表(和數組)可以通過 Collections.sort(和 Arrays.sort)進行自動排序。實現此介面 ...
  • django2 快速安裝指南 1. 安裝 作為一個 Python Web 框架,Django需要Python的支持。請參閱 "我可以在Django中使用哪些Python版本?" 瞭解詳情。Python包含一個名為 SQLite 輕量級的資料庫,因此你不需要設置資料庫。 請通過 "https://ww ...
  • 題目是:Java中怎麼在一行中輸入指定個數的數字,數字之間用空格隔開 編寫之後的結果是: 1 package test; 2 3 import java.util.Scanner; 4 5 public class ShuChuZhiDingGeShu { 6 public static void ...
  • python pip install linux 安裝 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...