windows 和 linux 的斷行字元轉換

實驗室裡的同仁問到說,在windows底下寫好的文字檔在Linux server裡打開,會在斷行的地方出現亂碼。

會出現這種問題是因為windows文字檔預設好的斷行字元為< CR > < LF >,而unix和Linux系統則是只有一個 < LF >。

在Linux底下有unix2dos 和 dos2unix 這兩個指令可以在兩個系統之間轉換文字檔。

而Vim這個強大的文字編輯器則是可以設定 ffs 來做自動偵測的動作。

參考網頁: http://vim.wikia.com/wiki/File_format

在unix系統底下的時候就這樣設:

:set ffs=unix,dos

而在windows 系統底下的時候就這樣設:

:set ffs=dos,unix


在存檔的時候,會保留原來的格式。

不過如果是 程式碼命令檔 的話,最好還是確實地經過轉換成適合本地系統的格式會比較好。

==============
後記
==============
在Linux底下把文字檔用binary格式的顯示出來的指令是 "od"

例如,下面這行指令可以把file.txt這個文字檔裡面每個字元都用C-style的格式顯示出來。

od -c file.txt

顯示出來的結果斷行符號< LF >會用"\n" 顯示出來,符號會用 < CR > "\r"顯示出來。

如果顯示出來的有看到一堆"\r \n"的就是 windows 格式的文字檔。

如果顯示出來的有很多的"\n"而沒有"\r"的話,就是 unix 格式的文字檔。

(windows 下怎麼轉換? 我阿知...我現在都用mac osx和linux了...)

留言

熱門文章