歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Windows與Unix的字符轉換

Windows與Unix的字符轉換

日期:2017/2/28 13:43:30   编辑:Linux教程

眾所周知在Windows與Unix的之間的字符集編碼和正則字符定位符是有很大的差異的,如果在不同系統之間傳遞文件總會帶來因為字符集編碼和字符定位符的不同帶來很多的錯誤。

這裡先說一下字符集編碼,在unix,一般使用的是Utf-8,而在Windows中系統中用的就比較多了,大部分有GB2312(中文簡體)、BIG5(中文繁體)等等,那麼如果使用的字符集不正確源文件打開就會有亂碼,這個時候我們就需要用iconv來對源文件進行轉換,以適應不同系統環境,iconv的用法如下:

用法: iconv [選項...] [文件...]
轉換給定文件的編碼。
輸入/輸出格式規范:
-f, --from-code=名稱 原始文本編碼
-t, --to-code=名稱 輸出編碼
信息:
-l, --list 列舉所有已知的字符集
輸出控制:
-c 從輸出中忽略無效的字符
-o, --output=FILE 輸出文件
-s, --silent 關閉警告
--verbose 打印進度信息
-?, --help 給出該系統求助列表
--usage 給出簡要的用法信息
-V, --version 打印程序版本號

這樣我們就可以通過這個指令寫成腳本用於實際生產環境中,一般來說這個軟件在系統安裝時都有默認安裝,如果沒有可以到gnu的網站上下載源碼包安裝,這個安裝沒有什麼依賴包,安裝很簡單的,這裡就不贅述了

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

除了字符集編碼以外在Windows與Unix之間使用的正則定位符還有一些區別,如在Windows編輯的文件在unix系統中打開會,在每一行的行尾都會有“^M”,這個就是兩者間的正則定位符不一樣的問題了。在Windows中行尾結束符為“^M$”,而在unix系統中則為“$”,這樣我們在使用的時候就會有很多的困擾,那麼這個就需要使用unix2dos dos2unix2個指令來對正則定位符進行轉換,在使用這2個指令的時候,在yum源配置正確的時候可以直接安裝,使用方法如下:

[root@localhost ~]# yum -y install unix2dos dos2unix
dos2unix與unix2dos:
-k:保持輸出文件的日期不變
-q:安靜模式,不提示任何警告信息。
-V:查看版本
-c:轉換模式,模式有:ASCII, 7bit, ISO, Mac, 默認是:ASCII。
-o:寫入到源文件
-n:寫入到新文件
兩者的參數選項使用方法都是一樣的,區別是dos2unix是把DOS(即Windows)轉成UNIX格式,而unix2dos則相反

平時我們在不同系統之間進行交換文件時就需要注意這些問題,以免造成錯誤。

Copyright © Linux教程網 All Rights Reserved