文本傳輸與二進(jìn)制傳輸區(qū)別
發(fā)表日期:2011-03-25 瀏覽次數(shù):3397次
Ftp,winscp等工具下載文件時(shí)候有選項(xiàng),可選的有二進(jìn)制方式和文本方式。文本方式又稱(chēng)為ASCII方式
兩者區(qū)別如下:
ASCII 方式和BINARY方式的區(qū)別是回車(chē)換行的處理,binary方式不對(duì)數(shù)據(jù)執(zhí)行任何處理,ASCII 方式將回車(chē)換行轉(zhuǎn)換為本機(jī)的回車(chē)字符,比如Unix下 是
,Windows下是
,Mac下是
ASCII 方式下會(huì)轉(zhuǎn)換文件,不一樣的系統(tǒng)有不一樣的行完畢符,unix系統(tǒng)下行完畢符是一個(gè)字節(jié),即十六進(jìn)制的0A,而ms的系統(tǒng)是兩個(gè)字節(jié),即十六進(jìn)制的0D0A所以當(dāng)你用ascii方式從unix的ftp server下載文件時(shí)(不論是二進(jìn)制或許文本文件),每檢測(cè)到一個(gè)字節(jié)是0A,就會(huì)自動(dòng)插入一個(gè)0D,所以假設(shè)你的文件是二進(jìn)制文件 比如可執(zhí)行文件、緊縮包什么的,就肯定無(wú)法用了。
假設(shè)你的文件就是unix下的文本文件,你用ascii方式是正確的,要是誤用了binary方式,你在windows上看這個(gè)文件是沒(méi)有換行的,內(nèi)部是一個(gè)個(gè)的黑方塊。普通來(lái)說(shuō),咱們最好都用binary方式,這樣可以保證不出錯(cuò)。假設(shè)有文本格式轉(zhuǎn)換的疑問(wèn),即unix格式的文本和dos格式的文本 之間的轉(zhuǎn)換,有許多工具可以做的,不要在ftp傳輸?shù)臅r(shí)辰冒險(xiǎn),尤其是你假設(shè)對(duì)這些東西不是十分清楚的話(huà)。
可以運(yùn)用 MIME,把一切的字符,轉(zhuǎn)換成0~128之間的字符,然后傳送,在接受方再將接納到的字符MIME反向轉(zhuǎn)換。通常咱們發(fā)送郵件,就是運(yùn)用這樣的字符轉(zhuǎn)換方式。
補(bǔ)充:文本方式和二進(jìn)制方式傳文本文件的詳細(xì)區(qū)別可以在linux下運(yùn)用cat -A 文件名 看到兩者的區(qū)別,當(dāng)然前提是在windows下上傳的文本為dos格式,這個(gè)可以用高級(jí)的文本編輯器看如ultraedit等。兩者的區(qū)別是二進(jìn)制 方式上傳的文本比文本方式多一個(gè)^M符號(hào),這個(gè)就是windows下dos格式的/r回車(chē)符號(hào),也就是上面提到的十六進(jìn)制的0D,在vi下運(yùn)用全局替 換:%s/^M//g[^M運(yùn)用Ctrl+V+M而不是直接輸入^M]去掉一切的回車(chē)符或許運(yùn)用dos2unix file執(zhí)行轉(zhuǎn)換,這樣保管后或許生成后的文件就和文本方式上傳的文件一樣了...
1,LeapFTP,如果是快速連接方式,在端口后面有一個(gè)默認(rèn)顯示為“自動(dòng)”的地方,點(diǎn)擊兩次即可變?yōu)椤岸M(jìn)制”方式;如果是添加為站點(diǎn)方式,則是在站點(diǎn)管理器-->高級(jí)-->傳送模式,選取“二進(jìn)制”。
2,F(xiàn)lashFXP,選擇“選項(xiàng)”-“參數(shù)設(shè)置”菜單,在對(duì)話(huà)框中選中“傳送“節(jié)點(diǎn),即可配置二進(jìn)制上傳方式。
3,CuteFTP中,(ALT+F7) 選擇“工具”-“全局選項(xiàng)(Global Options)”菜單,在對(duì)話(huà)框中選擇“傳輸”節(jié)點(diǎn),即可配置二進(jìn)制上傳方式。