Unterstützt der FTP-Server die UTF-16-Kodierung?

Unterstützt der FTP-Server die UTF-16-Kodierung?

Ich überprüfe meine Anwendung auf verschiedene Kodierungstechniken. In einem solchen Anwendungsfall im Zusammenhang mit dem FTP-Server sehe ich nichts im Zusammenhang mit UTF-16. Das bedeutet, dass ich mich beim FTP-Server anmelden kann, wenn dieser UTF-8 hat, und wenn ich das auf UTF-16 ändere, kann ich mich nicht beim FTP-Server anmelden. Ich habe „FEAT“ von meinem Client auf diesem Server ausgeführt, sehe aber kein UTF-16 in der Antwort. Bedeutet das, dass mein FTP-Server es nicht unterstützt?

Ich kann UTF-8 auf dem FTP-Server aktivieren, indem ich den Befehl ausführe OPTS UTF8 ON. Gibt es einen solchen Befehl, mit dem ich UTF-16 auf dem FTP-Server aktivieren kann, oder wird UTF-16 nicht unterstützt?

Unten sehen Sie die Antwort auf FEATden Befehl

Command:    FEAT
Response:   211-Features:
Response:    MDTM
Response:    REST STREAM
Response:    SIZE
Response:    MLST type*;size*;modify*;perm*;
Response:    MLSD
Response:    AUTH SSL
Response:    AUTH TLS
Response:    PROT
Response:    PBSZ
Response:    **UTF8**
Response:    TVFS
Response:    EPSV
Response:    EPRT
Response:    MFMT
Response:   211 End

** HINWEIS: HTTP/HTTPS unterstützt sowohl UTF-8 als auch UTF-16, wo ich mich anmelden kann

Schritte, die ich versucht habe, bevor ich ins Coding eingestiegen bin

  1. Der FTP-Server wird lokal mit einem Verzeichnis erstellt

  2. Vom FTP-Client (FileZilla) aus eine Verbindung zum FTP-Server herstellen

    • Wenn ich den Zeichensatz UTF-8 einstelle, ist die Verbindung erfolgreich.
    • Wenn ich den Zeichensatz UTF-16 habe, ist die Verbindung nicht erfolgreich Bildbeschreibung hier eingebenund unten ist die Antwort

    Unten ist das Protokoll. Status: Verbindung hergestellt, warte auf Willkommensnachricht ... Antwort: ㈲ⴰ楆敬楚汬⁡敓癲牥ㄠ㐮ㄮ Fehler: Verbindung zum Server konnte nicht hergestellt werden. Status: Warte auf erneuten Versuch ... Status: Adresse von localhost wird aufgelöst. Status: Verbindung zu 127.0.0.1:21 wird hergestellt ... Status: Verbindung hergestellt, warte auf Willkommensnachricht ... Antwort: ㈲ⴰ楆敬楚汬⁡敓癲牥ㄠ㐮ㄮ Fehler: Verbindung zum Server konnte nicht hergestellt werden.

Antwort1

FTP unterstützt UTF-16 nicht. Es ist ein textbasiertes Protokoll, das ASCII für Befehle und Antworten verwendet; es kann UTF-8 nur unterstützen, weil letzteres eine Obermenge von ASCII ist (d. h. Befehle wie FEATsind in beiden Fällen genau gleich kodiert). Dasselbe gilt für ältere Kodierungen wie ISO-8859, abernichtgilt für UTF-16 – die anfängliche Serverbegrüßung (die immer in ASCII erfolgt) wird von einem Client, der UTF-16 erwartet, nicht verstanden und als UTF-16 gesendete Befehle werden vom Server nicht verstanden.

Normalerweise besteht jedoch kein praktischer Bedarf, beide Kodierungen zu unterstützen – UTF-8 und UTF-16 sind lediglich unterschiedliche Darstellungen derselben Unicode-Codepunkte; jeder Dateiname, der als UTF-16 kodiert werden kann, kann auch als UTF-8 kodiert werden und umgekehrt. Obwohl Windows beispielsweise intern UTF-16 für Dateinamen verwendet, verwenden Windows-FTP-Server weiterhin UTF-8 und konvertieren einfach bei Bedarf zwischen den beiden.

verwandte Informationen