Verhindern Sie, dass Filezilla leere Zeilen in Textdateien einfügt

Verhindern Sie, dass Filezilla leere Zeilen in Textdateien einfügt

Häufig lädt FileZilla eine Datei von verschiedenen Remote-Hosts herunter .cssund .phpfügt zwischen vorhandenen Zeilen Leerzeilen ein. Dadurch wird die schöne Formatierung zerstört.

PC = Windows 10 Pro 64-Bit.

Wie verhindere ich dies?

Antwort1

Meine Antwort vs. Antwort des OP

Ich schreibe diese Antwort, obwohl der OP die Lösung bereits gefunden hat. Ziel meiner Antwort ist es, das Problem zu erklären, um zukünftigen Benutzern mit ähnlichen Problemen zu helfen.Die vorhandene Antwort bietet eine Lösung, aber keinen Einblick. Dies ist die Antwort:

Die Lösung bestand darin, den Übertragungstyp von „Auto“ auf „Binär“ zu ändern.

Transfermenü > Transfertyp > Binär


Problemhintergrund: ASCII vs. Binär

Wie ich (in meinem Kommentar zur Frage) vermutet habe, war das Problem eine Nichtübereinstimmung mit der Übersetzung der Zeilenenden.FileZilla Wikibehandelt das Thema. Dies sind die relevanten Fragmente (alle folgenden Zitate stammen daraus, einige Sätze sind zusätzlichbetontvon mir):

Dateien können auf verschiedene Arten zwischen einem FTP-Client und einem Server übertragen werden. Die FTP-Spezifikation (RFC 959) nennt sie „Datentyp“ (...)

Die verschiedenen Datentypen sind:

  • ASCII
  • binär
  • (...)

Der ASCII-Typ wird zum Übertragen von Textdateien verwendet.Das Problem bei Textdateien besteht darin, dass verschiedene Plattformen unterschiedliche Arten von Zeilenenden haben. Microsoft Windows verwendet beispielsweise ein CR+LF-Paar (Wagenrücklauf und Zeilenvorschub), während Unix(-ähnliche) Systeme, einschließlich Linux und MacOS X, nur LF und traditionelle MacOS-Systeme (MacOS 9 oder älter) nur CR verwenden.Der Zweck des ASCII-Typs besteht darin, sicherzustellen, dass die Zeilenenden entsprechend den auf der Plattform erforderlichen Angaben geändert werden.Gemäß der FTP-Spezifikation werden ASCII-Dateien immer mit einem CR+LF-Paar als Zeilenende übertragen.

Wenn die Datei also vom Client zum Server übertragen wird, muss der Client sicherstellen, dass CR+LF verwendet wird. (...)

Dasselbe passiert, wenn eine Datei vom Server zum Client heruntergeladen wird: Der Server stellt beim Senden der Datei sicher, dass die Zeilenenden CR+LF sind, und der Client entfernt dann alles, was auf seiner Plattform nicht als Zeilenende benötigt wird.

(...)

Im Vergleich zum ASCII-Typ ist der Binärtyp einfacher: Die Datei wird einfach so übertragen, wie sie ist, und es wird keine Zeilenendübersetzung durchgeführt.


Was ist passiert?

Eines der Beispiele, wenn etwas schief geht, passt zum Fall des OP. Ich denke, das ist passiert:

Eine Windows-Textdatei (CR+LF) wurde binär auf einen Unix-basierten FTP-Server hochgeladen. Wenn die Datei im ASCII-Format heruntergeladen wird, konvertiert der FTP-Server LF in CR+LF, sodass die CR+LF-Zeilenenden in CR+CR+LF umgewandelt werden. FileZilla unter Windows geht davon aus, dass die Datei bereits die Zeilenkodierung CR+LF verwendet (gemäß FTP-Spezifikation), sodass keine weitere Übersetzung erfolgt.Abhängig vom verwendeten Texteditor können Zeilen jetzt durch eine zusätzliche Leerzeile getrennt sein.


Lösung

Die Lösung des OP besteht darin, den Übertragungstyp vonAutoZuBinärabÜberweisenSpeisekarte.Der Artikel beschreibt auch andere Möglichkeiten, dies zu ändern:

Sie können den Übertragungsdatentyp mit FileZilla auf drei Arten ändern:

  • In den Einstellungen von FileZilla
  • Im Hauptmenü unterÜberweisen->Übertragungsart
  • Durch einen Rechtsklick auf den Datentypindikator in der Statusleiste von FileZilla.

HerstellungbinärDie Standardoption in Windows kann dazu führen, dass eine von einem Nicht-Windows-System heruntergeladene .cssTextdatei .phpmit einem einzelnen LF oder CR statt dem Windows-spezifischen CR+LF gespeichert wird. Dies muss kein Problem sein, wie in einem anderen Abschnitt erklärt wird:

Wenn Sie nicht sicher sind, was Sie verwenden sollen, wählen Sie immer den Binärtyp.Heutzutage können fast alle (guten) Texteditoren mit den drei möglichen Zeilenenden umgehen, und auch andere Textdateien, etwa von Skriptsprachen wie Perl oder PHP, sowie XML-Dateien funktionieren (fast) immer mit beliebigen Zeilenenden.

Diese Lösung dürfte in vielen Fällen die beste sein, da man die Überweisungsart jederzeit ändern kann.


Alternative Lösung

Der Fragetitel lässt vermuten, dass zusätzliche Zeilen von FileZilla des OP erstellt wurden. Das ist nicht wahr, mit der FileZilla-Konfiguration des OP war alles in Ordnung. Das Problem entsteht auf der Serverseite, wo es Textdateien mit Zeilenenden gibt, die nicht mit dem Server-Betriebssystem übereinstimmen.Die oben genannte Lösung ist lediglich eine clientseitige Lösung für das serverseitige Problem..

Die alternative Lösung besteht darin, die Dateien (ihre Zeilenenden) auf der Serverseite zu korrigieren, damit die ASCII-Übertragung von vornherein wie vorgesehen funktioniert. Dies ist offensichtlich die richtige Vorgehensweise und kann in gewissem Sinne als die beste Lösung bezeichnet werden, da es sich mit der Wurzel des Problems befasst. Erwägen Sie diese Lösung, wenn Sie den Server verwalten oder den Administrator kontaktieren können oder wenn Sie über die Rechte zum Überschreiben der falsch formatierten Datei verfügen.Dies kommt auch anderen Benutzern zugute.

Selbst wenn Sie den Administrator kontaktieren, ist es meiner Meinung nach immer schneller, den Übertragungstyp zu ändern und die gewünschte Datei herunterzuladen, anstatt zu warten, bis die Änderungen auf der Serverseite vorgenommen werden.

Antwort2

Die Lösung bestand darin, den Übertragungstyp von „Auto“ auf „Binär“ zu ändern.

Transfermenü > Transfertyp > Binär

verwandte Informationen