1. 程式人生 > >二進制傳輸與文本傳輸的區別

二進制傳輸與文本傳輸的區別

unix -a 就會 二進制文件 下載 ctrl+v mime pan 轉換

Ftp,winscp等工具下載文件時候有選項,可選的有二進制方式和文本方式。文本方式又稱為ASCII方式

兩者區別如下。

  ASCII 方式和BINARY方式的區別是回車換行的處理,binary方式不對數據執行任何處理,ASCII 方式將回車換行轉換為本機的回車字符,比如Unix下 是\n,Windows下是\r\n,Mac下是\r

  ASCII 方式下會轉換文件,不一樣的系統有不一樣的行完畢符,unix系統下行完畢符是一個字節,即十六進制的0A,而ms的系統是兩個字節,即十六進制的0D0A所以當你用ascii方式從unix的ftp server下載文件時(不論是二進制或許文本文件),每檢測到一個字節是0A,就會自動插入一個0D,所以假設你的文件是二進制文件 比如可執行文件、緊縮包什麽的,就肯定無法用了。

  假設你的文件就是unix下的文本文件,你用 ascii方式是正確的,要是誤用了binary方式,你在windows上看這個文件是沒有換行的,內部是一個個的黑方塊。普通來說,咱們最好都用binary方式,這樣可以保證不出錯。假設有文本格式轉換的疑問,即unix格式的文本和dos格式的文本 之間的轉換,有許多工具可以做的,不要在ftp傳輸的時辰冒險,尤其是你假設對這些東西不是十分清楚的話。

  可以運用 MIME,把一切的字符,轉換成0~128之間的字符,然後傳送,在接受方再將接納到的字符MIME反向轉換。通常咱們發送郵件,就是運用這樣的字符轉換 方式

   ------------------------------------------------------------------

   補充:文本方式和二進制方式傳文本文件的詳細區別可以在linux下運用cat -A 文件名 看到兩者的區別,當然前提是在windows下上傳的文本為dos格式,這個可以用高級的文本編輯器看如ultraedit等。兩者的區別是二進制 方式上傳的文本比文本方式多一個^M符號,這個就是windows下dos格式的/r回車符號,也就是上面提到的十六進制的0D,在vi下運用全局替 換:%s/^M//g[^M運用Ctrl+V+M而不是直接輸入^M]去掉一切的回車符或許運用dos2unix file執行轉換,這樣保管後或許生成後的文件就和文本方式上傳的文件一樣了。。

二進制傳輸與文本傳輸的區別