Mit FTP-Clients, einschließlich der programmgesteuert verwendeten, kann der Benutzer beim Hochladen einer Datei ASCII- oder Binärübertragungen auswählen. Einige Clients unterstützen auch eine gewisse Variante von Auto, bei der Sie die Entscheidung dem FTP-Client überlassen.
Was sind die richtigen Gründe, um ein Format über das andere zu wählen? Wie entscheidet man sich? Wie kann man diese Entscheidung neben den Kunden, die die automatische Erkennung unterstützen, automatisieren?
Antworten:
Windows verwendet sowohl eine Carrige-Rückgabe als auch einen Zeilenvorschub, um das Ende einer Zeile in einer Textdatei anzuzeigen. Unix verwendet im Allgemeinen nur einen (ich denke einen Zeilenvorschub). Wenn Sie FTP-Dateien als Text verwenden, konvertiert das FTP-Programm Zeilenenden für Sie. Im Binärmodus wird die Datei genau so übertragen, wie sie ist. Wenn Sie also ein Textdokument übertragen, verwenden Sie ASCII. Alles andere und binäre ist wahrscheinlich die beste Wahl. Wie andere bereits betont haben, werden die meisten modernen Texteditoren ohnehin mit Zeilenenden umgehen (Notepad nicht und auch nicht modern :)), daher ist Binär bei weitem die sicherere Option. Ich stimme auch @njsf zu, ich mag es nicht, wenn Dateien hinter meinem Rücken geändert werden. Ich habe Editoren, die durchaus in der Lage sind, die Zeilenenden zu suchen und zu ersetzen, wenn dies erforderlich wird.
quelle
In der heutigen Zeit, in der die meisten Texteditoren die Zeilenenden von Unix / Dos / Mac automatisch erkennen und anpassen, finde ich kaum eine Rechtfertigung für die Verwendung von ASCII-FTP-Übertragungen. Ich benutze immer binär.
Ich möchte nicht, dass die Dateien unter der Decke geändert werden.
Ich neige dazu, scp jetzt viel mehr als ftp zu verwenden, und scp kopiert nur die Bits ...
quelle
Verwenden Sie immer binär. Führen Sie die Konvertierung bei Bedarf von Hand durch - sie wird wahrscheinlich nie benötigt.
Der ASCII-Modus führt nur eine Zeilenendkonvertierung zwischen Systemen mit unterschiedlichem Gehorsam durch. Es ist heutzutage absolut sinnlos. Die meisten Editoren passen sich an, XML-Parser ignorieren sie meistens. Sie haben nur Probleme beim Kompilieren von .c-Dateien oder beim Ausführen von sh-Dateien unter Unix mit MS-DOS-Zeilenende. Dies geschieht jedoch normalerweise nur aufgrund einer falsch platzierten Übertragung im ASCII-Modus .
Sagen Sie einfach Nein zum ASCII-Modus. Moderne FTP-Clients verwenden ohnehin standardmäßig BINARY.
quelle
Persönlich neige ich dazu, bei jeder Übertragung Binärdateien zu verwenden. Ich wurde einmal mit einer Datei gestochen, die per Binärübertragung von einem Windows-Computer auf einen Unix-Computer gestellt wurde. Infolgedessen hatte die txt-Datei immer noch CR LF-Endungen.
Der ASCI-Modus betrachtet Quell- und Zielplattformen und führt eine Übersetzung am Zeilenende durch. Die resultierende Datei hatte also CR CR LF-Zeilenenden (LF wurde von ASCI in CR LF übersetzt, da es Unix war -> Windows).
Klingt kleinlich - aber es war eine 20-Gbit-Protokolldatei, und ich hatte nur ein Zeitfenster, in dem ich sie sammeln konnte.
Ich verwende EOL-Konvertierungsprogramme auf dem lokalen Computer, wenn dies erforderlich ist.
BEARBEITEN: Ich habe die Datei vom Unix-Host wieder auf Windows übertragen
quelle
Beachten Sie, dass das Übertragen von Text auf einige Systeme durch Verwendung des Textmodus (nicht wirklich ASCII) beschleunigt wird, da sie den Zeichensatz nicht verwenden. Zum Beispiel EBCDIC auf IBM Mainframes und ähnlichen Systemen.
Solange beide Systeme denselben Basiszeichensatz verwenden, ist Binär wahrscheinlich weniger problematisch.
quelle
Wenn Sie wissen, wie Windows und Unix neue Zeilen in Textdateien codieren und was der Unterschied zwischen dem Binär- und dem ASCII-Übertragungsmodus ist, können Sie diese Frage selbst beantworten.
quelle