Es gibt noch eine Trennsequenz bei desem Enctype, das ist die Leerzeile CRLFCRLF.
Ja, um Kopfdaten von Nutzdaten zu trennen.
Und die Wahrscheinlichkeit, dass CRLFCRLF in beliebigen Binaries (auch Textdateien sind Binaries) vorkommen kann, ist sehr groß.
Und das stellt auch kein Problem dar. Aus dem Kontext heraus ist der Zweck des doppelten Zeilenumbruchs klar: Der erste doppelte Zeilenumbruch nach den Kopfdaten markiert den Anfang der Nutzdaten. Weitere doppelte Zeilenumbrüche sind einfache Nutzdaten - Verwechslungen ausgeschlossen.
Ganz genau! Genau deswegen wird das Teil ja auch sequentiell zerlegt ;)
Du stellst dich vor Probleme, die es nicht gibt. Das zeigt mir auch dein ständiges Beharren auf Binärsequenzen, als seien sie so fundamental unterschiedlich von Strings, dass sie eine ständige Extrawurst spielen.
Da hast Du was an meiner, hauptsächlich durch Perl geprägten Denkweise falsch verstanden ;)
In Perl sind das alles nur Bytesequenzen und Perl arbeitet im Default byteorientiert. Erst seit Version v5.8 wird zwischen Strings und Bytesequenzen unterschieden, aber auch nur dann, wenn das der Programmierer explizit so will.
Der Dateibegriff ist übrigens geprägt duch Niklas Wirth: Dateien sind Sequenzen (um 1980). In seinen Büchern beschriebene Algorithmen und Grundlagen haben auch heute noch ihre Gültigkeit. pl