您好,登錄后才能下訂單哦!
眾所周知在Windows與Unix的之間的字符集編碼和正則字符定位符是有很大的差異的,如果在不同系統(tǒng)之間傳遞文件總會帶來因為字符集編碼和字符定位符的不同帶來很多的錯誤。
這里先說一下字符集編碼,在unix,一般使用的是Utf-8,而在Windows中系統(tǒng)中用的就比較多了,大部分有GB2312(中文簡體)、BIG5(中文繁體)等等,那么如果使用的字符集不正確源文件打開就會有亂碼,這個時候我們就需要用iconv來對源文件進行轉換,以適應不同系統(tǒng)環(huán)境,iconv的用法如下:
用法: iconv [選項...] [文件...] 轉換給定文件的編碼。 輸入/輸出格式規(guī)范: -f, --from-code=名稱 原始文本編碼 -t, --to-code=名稱 輸出編碼 信息: -l, --list 列舉所有已知的字符集 輸出控制: -c 從輸出中忽略無效的字符 -o, --output=FILE 輸出文件 -s, --silent 關閉警告 --verbose 打印進度信息 -?, --help 給出該系統(tǒng)求助列表 --usage 給出簡要的用法信息 -V, --version 打印程序版本號
這樣我們就可以通過這個指令寫成腳本用于實際生產(chǎn)環(huán)境中,一般來說這個軟件在系統(tǒng)安裝時都有默認安裝,如果沒有可以到gnu的網(wǎng)站上下載源碼包安裝,這個安裝沒有什么依賴包,安裝很簡單的,這里就不贅述了
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
除了字符集編碼以外在Windows與Unix之間使用的正則定位符還有一些區(qū)別,如在Windows編輯的文件在unix系統(tǒng)中打開會,在每一行的行尾都會有“^M”,這個就是兩者間的正則定位符不一樣的問題了。在Windows中行尾結束符為“^M$”,而在unix系統(tǒng)中則為“$”,這樣我們在使用的時候就會有很多的困擾,那么這個就需要使用unix2dos dos2unix2個指令來對正則定位符進行轉換,在使用這2個指令的時候,在yum源配置正確的時候可以直接安裝,使用方法如下:
[root@localhost ~]# yum -y install unix2dos dos2unix dos2unix與unix2dos: -k:保持輸出文件的日期不變 -q:安靜模式,不提示任何警告信息。 -V:查看版本 -c:轉換模式,模式有:ASCII, 7bit, ISO, Mac, 默認是:ASCII。 -o:寫入到源文件 -n:寫入到新文件 兩者的參數(shù)選項使用方法都是一樣的,區(qū)別是dos2unix是把DOS(即Windows)轉成UNIX格式,而unix2dos則相反
平時我們在不同系統(tǒng)之間進行交換文件時就需要注意這些問題,以免造成錯誤
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。