ASCII vs Binary vs Auto?


16

Sto trasferendo i file tra i server e ho appena iniziato a notare che alcuni di essi vengono modificati per essere una lunga riga continua anziché avere i ritorni e le interruzioni di riga che avevano originariamente. Suppongo che ciò abbia a che fare con il tipo di trasferimento del mio client FTP che originariamente era impostato su "Auto", ma con "Binary" e "ASCII" come opzioni aggiuntive.

In breve, quali sono le differenze tra i modi in cui trasferisco un file da un server a un altro e queste differenze saranno in grado di modificare il file in modo come ho menzionato sopra?

Trasferimento di DA di Windows PER Linux.

Risposte:


27

La modalità di trasferimento "Binario" di FTP copia esattamente i file, byte per byte. Semplice e diretto

Quando si portano file di testo tra diversi sistemi operativi, tuttavia, questo potrebbe non essere quello che si desidera: diversi sistemi operativi utilizzano codici diversi per rappresentare le interruzioni di riga. La modalità "ASCII" esiste a questo scopo: traduce automaticamente tutte le terminazioni di linea dal formato del sistema di origine a quello di destinazione.

Non sono sicuro di "Auto", ma immagino che l'estensione del file o qualcosa di simile decida se si tratta di un file di testo e prova a indovinare la modalità appropriata.

Quale modalità desideri dipende esattamente da cosa stai facendo con i file ... se li stai solo copiando per eseguirne il backup, probabilmente vorrai copiarli in modalità binaria in modo che siano esattamente gli stessi quando successivamente li ripristini nuovamente sul server Windows. Se devono essere utilizzabili come file di testo (forse come file di configurazione per un programma multipiattaforma?) Su entrambi i lati, ti consigliamo di utilizzare la modalità ASCII per tradurli.

EDIT: Per quanto ne so, i file FTP da Windows a Linux non dovrebbero mai far scomparire le interruzioni di linea ... tuttavia , se li copi in modalità ASCII e poi li riporti al server Windows in modalità binaria, Linux finali di stile potrebbero non essere riconosciuti nella finestra di Windows. (Il Blocco note non li vedrà; Wordpad lo farà; YMMV con altri software.)

(Oggi una tale comodità - convertire automaticamente le terminazioni di linea - potrebbe sembrare strana in un protocollo di base come FTP. Quando è stato inventato FTP, l'invio di file di testo era la norma e uno degli obiettivi del protocollo era quello di rendere questo il più semplice possibile.)


Ottima descrizione di entrambi. Mi sento molto meno confuso ora.
Sampson,

grazie non ho mai sottolineato il punto di quella modalità ASCII, e ora userò sicuramente solo la modalità binaria
Kiwy,

3

Ci sono davvero delle differenze, e rovineranno i tuoi trasferimenti di file non di testo normale a meno che tu non usi l'opzione binaria - generalmente usa sempre se ok :)


Non c'è modo di ripristinarli? O devo semplicemente trasferire con Binary ora per evitarlo di nuovo in futuro?
Sampson,

Sono sicuro che potresti deselezionarli ma potrebbe volerci molto tempo, sarei fortemente tentato di ritrasmetterli.
Chopper3

1

Da quale sistema operativo trasferisci i file da / verso? Linux / Unix usano diverse interruzioni di riga rispetto a Windows. Quindi, se generi un file su un computer Linux e lo apri su Windows, potrebbe sembrare strano. Ci sono programmi di utilità per correggere questo, sebbene nella mia esperienza se usi wordpad su Windows invece del blocco note, andrà bene.


Sto creando questi su Windows in un IDE, e poi li sposto sul server Linux. In un secondo momento, li apro dal server Linux per trovare la lunga linea continua.
Sampson,

Prova a correre dos2unixe vedi se questo corregge le linee
einstiien

1

Windows e Unix hanno byte diversi alla fine delle linee (Windows un esadecimale 0D 0A, Unix solo uno 0A). Quando si trasferiscono file in modalità binaria, i byte di un file verranno spostati invariati da un computer. Ciò è necessario per i formati binari (ad es. File ZIP, immagini, ecc.) Ma può portare a problemi con i file di testo: ad esempio notepad.exe su Windows visualizzerà un file di testo con solo interruzioni di riga di stile unix come una lunga riga, un editor unix potrebbe mostrare ^ M alla fine di ogni riga quando viene visualizzato lo stile di Windows.

Quindi tecnicamente per i formati binari (zip, jpg, png e infiniti altri) devi impostare l'FTP su BINARY, mentre per i formati di testo (HTML, PHP, CGI, ecc.) Devi impostarlo su ASCII.

La maggior parte dei buoni programmi FTP ha anche un'impostazione automatica, il che significa che determineranno la modalità (BINARY o ASCII) in base alle estensioni di file ben note, ad esempio cambierà automaticamente il trasferimento per il file JPG in BINARY e invierà / riceverà un file PHP in ASCII modalità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.