關於文本格式傳輸和二進制格式傳輸

在Unix和Windows系統之間用ftp傳輸數據時:

一、傳輸的是文本數據,則必須用文本格式,否則從Windows到Unix傳輸時,Windows下的每一個換行爲"回車+換行"(0x0D0A),Unix在接收的時候,都將自動濾去其中的"回車",也就是轉換爲Unix下的單單一個"換行"(0x0A)符。反之,當Windows接收Unix操作系統傳輸過來的數據時,將自動在每一個"換行"(0x0A)符前添加一個"回車"(0x0D)符。此時如果採用二進制格式傳輸,操作系統之間將不做相應轉換,而Windows和Unix對換行符的解析操作不同,Unix會把Windows傳過來的0x0D當做單獨的字符解析,這樣將出現莫名其妙的亂碼,同樣,Windows也會把Unix傳過來的0x0A當做一個字符而不是解析爲換行符(Windows)下的換行符爲0x0D0A。
二、如果傳輸的是二進制數據,則必須用二進制格式。否則如果採用文本格式,如上所述,Windows會在接收到的文件裏0x0A前自動添加0x0D,而Unix將自動把所有0x0A前的0x0D刪掉,呵呵,想一想,你好不容易編譯過的可執行文件傳過去之後會變成什麼樣子?基本不可能是你在本地機器上所看到的樣子。


上述只適用於Windows和Unix系統之間傳輸,同種類型操作系統之間傳輸不存在轉換問題。

歡迎訪問:樂園www.ly8.co

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章