Warum wird Unicode nicht für für das Dateisystem reservierte Zeichen verwendet?

Warum wird Unicode nicht für für das Dateisystem reservierte Zeichen verwendet?

Ich würde in Windows wirklich gerne Zeichen wie "?" für Dateinamen verwenden. Ich verstehe, warum sie reserviert sind, aber warum wurde dies nicht umgangen oder wird dies jemals umgangen, indem Unicode-Zeichen verwendet werden, die gleich aussehen, aber (offensichtlich) unterschiedliche Unicode-Codes haben?

Ich denke, das ist durchaus möglich, aber wenn nicht, warum?

Antwort1

Ich denke, der Grund dafür ist, dass es zu Verwirrung kommen könnte. Wenn Sie ein Zeichen haben, das wie ein „?“ aussieht, aber einen anderen Unicode-Code hat – wie erkennen Sie den Unterschied?

Wie würden Sie es jemandem erklären? „Ihr Dateiname darf kein Fragezeichen enthalten, aber Sie können etwas haben, das wie ein Fragezeichen aussieht, aber keins ist, und um es einzugeben, müssen Sie nur diese 5-Tasten-Kombination verwenden.“?

Besser (meiner Meinung nach) ist es, sie vollständig auszuschließen und Fehler zu vermeiden.

Antwort2

Die in einem Dateinamen nicht zulässigen Zeichen sind:

  • <(weniger als)
  • >(größer als)
  • :(Doppelpunkt)
  • "(Anführungszeichen)
  • /(Schrägstrich)
  • \(umgekehrter Schrägstrich)
  • |(senkrechter Balken oder Rohr)
  • ?(Fragezeichen)
  • *(Sternchen)

entsprechendMicrosoft-Benennungskonventionen.

Ist es das, worauf Sie sich bezogen haben?

Der Grund hierfür liegt wahrscheinlich darin, dass die Verarbeitung von Dateien mit diesen Zeichen in der alten command.comShell zu schwierig wäre, da „ ?auch“ beispielsweise ein beliebiges Zeichen oder *„auch jede beliebige Datei“ bedeutet.

Anstatt allen beizubringen, wie man mit diesen Sonderfällen umgeht, haben sie es verboten, was das Skripten erleichterte.

Es gäbe keine Unicode-Äquivalente für diese Zeichen, und selbst wenn es ein Äquivalent gäbe, wäre das Problem damit immer noch nicht gelöst: Das vorhandene ASCII ?und *müssten weiterhin als Platzhalter funktionieren, andernfalls müsste jeder seine Skripte neu schreiben.

Antwort3

Sie können ohne Risiko den folgenden Unicode verwenden, der dem Original ähnlich sieht

Sie gelten als Windows-Namen:

NB: DieUnicode-Tabelleermöglicht die Suche nach Charakteren anhand der Beschreibung (z. B. Roman), des tatsächlichen Charakters und die Angabe anderer verwandter Charaktere (die gleich aussehen) als Referenz

Nachfolgend finden Sie einen gültigen Dateinamen (zum Ausprobieren kopieren und einfügen; funktioniert unter Windows 7 mit dem Windows Explorer und wird korrekt angezeigt, leider kann kein Screenshot hinzugefügt werden). Sie werden feststellen, dass das Erscheinungsbild unter Windows anders ist als in einem Browser (Änderung der Schriftart).

Unicode 一 ☀ ¦ » ։∖ ‡〵 ÷╲ ‽ ⁇ ¿ ‰ ¢ π ∞ « ≈.txt


Einige Referenzen

  1. www.theasciicode.com.ar/erweiterter-ascii-code/copyright-symbol-ascii-code-184.html
  2. http://www.theworldofstuff.com/characters/
  3. http://unicode-table.com/en/#00A9
  4. http://www.tedmontgomery.com/tutorial/altchrc-a.html
  5. http://unicode-table.com/en/#enclosed-alphanumerics
  6. https://stackoverflow.com/questions/8086375/welches-Zeichen-wird-verwendet-um-ein-Element-am-Ende-einer-alphabetischen-Liste-anzubringen

NB: Windows ist Posix-kompatibel seit 1980 (laut Wikipedia), also entspricht es den Posix-RFCs, einschließlich derjenigen, die Dateinamen angeben.Antwort auf Stack ExchangeGeben Sie einen breiteren Kontext zu RFC und welche Zeichen in Dateinamen zulässig sind

Antwort4

Sie können diese Zeichen jetzt selbst verwenden. Aber ich gehe davon aus, dass Sie möchten, dass das Betriebssystem automatisch zwischen einem ASCII-Fragezeichen und einem ähnlichen Zeichen wie ﹖ ( SMALL QUESTION MARK- UFE56) transkribiert. Ich glaube wirklich nicht, dass das zufriedenstellend ist, insbesondere da Linux und andere, wo die einzigen ungültigen Zeichen für Dateinamen Schrägstrich ( /) und Null (ASCII 0) sind, diese Zeichen ohne weiteres akzeptieren.

Weiterführende Literatur:

verwandte Informationen