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.com
Shell 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:
- « (U+00AB) statt < (kleiner als)
- » (U+00BB) statt > (größer als)
- ։ (U+0589oder ÷ (U+00F7) oder ‡ (U+2021) statt : (Doppelpunkt)
- “ (U+201C) statt " (Anführungszeichen)
- ⁄ (U+2044) anstelle von / (Schrägstrich)
- ∖ (U+2216) oder \ (U+FF3C) oder 〵 (U+3035) statt \ (Backslash)
- ¦ (U+00A6) statt | (senkrechter Strich oder Pipe)
- ‽ (U+203D) ⁇ (U+2047) ¿(U+00BF) statt ? (Fragezeichen)
- ☀ (U+2600) statt * (Sternchen)
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
- www.theasciicode.com.ar/erweiterter-ascii-code/copyright-symbol-ascii-code-184.html
- http://www.theworldofstuff.com/characters/
- http://unicode-table.com/en/#00A9
- http://www.tedmontgomery.com/tutorial/altchrc-a.html
- http://unicode-table.com/en/#enclosed-alphanumerics
- 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:
- Korrigieren von Unix/Linux/POSIX-Dateinamen: Steuerzeichen (wie Zeilenumbruch), führende Bindestriche und andere Probleme
- Wikipedia-Artikel überDateinamen