2007/03/23

文字檔 ftp 時要指定成 ASCII mode - 斷行字元問題

DOS 下的斷行字元是 CRLF (Carriage Return/Line Feed)
UNIX 下的斷行字元是 LF (Line Feed)
在 UNIX 下用 cat 來看時,CR 顯示成 ^M 、 LF 顯示成 $

因此 DOS 下的文字檔用 ftp 上傳到 UNIX 上時
如果是用 Binary 模式上傳
用 vi 或 joe 開啟該文字檔時,每一行最後都會多一個 ^M

反之,如果是用 Binary 模式將 UNIX 下的文字檔下載到 Windows 下
用記事本開啟文字檔時會發現檔案的斷行都不見了(因為少了 CR)

ftp 的 ASCII 模式,會自動將檔案轉換成適當的格式
在 DOS 下的文字檔 ftp 到 UNIX 時,會自動把 CRLF 換成 LF
同樣地,在 UNIX 下的文字檔 ftp 到 DOS 時,會自動把 LF 換成 CRLF
因此,用 ftp 傳送文字檔時,務必要指定成 ASCII 模式。

沒有留言:

張貼留言