Почему Unicode не используется для зарезервированных символов файловой системы?

Я действительно хотел бы использовать такие символы, как "?"в ОС Windows для имен файлов. Я понимаю, почему они зарезервированы, но почему они этого не сделали, или они когда-нибудь обойдут это, используя символы unicode, которые выглядят одинаково, но (очевидно) имеют разные коды Unicode?

Я думаю, что это вполне возможно, но если нет, то почему?

13
задан DavidPostill
12.03.2023 20:14 Количество просмотров материала 3126
Распечатать страницу

4 ответа

Я думаю, что причина, по которой они не из-за потенциала, чтобы вызвать путаницу. Если у вас есть персонаж, который выглядит как "?"но имеет другой код unicode-как вы заметите разницу?

Как бы вы объяснили это кому-то? "У вас не может быть вопросительного знака в вашем имени файла, но у вас может быть вещь, которая выглядит как вопросительный знак, но не является, и для ее ввода вам нужно использовать только эту комбинацию из 5 клавиш."?

лучше (на мой взгляд) исключить их полностью и без ошибок.

2
отвечен bfhd 2023-03-14 04:02

недопустимые символы в имени файла:

  • < (меньше)
  • > (больше)
  • : (двоеточие)
  • " (двойная кавычка)
  • / (косая черта)
  • \ (косая черта)
  • | (вертикальная полоса или труба)
  • ? (вопросительный знак)
  • * (звездочка)

по данным Соглашения Об Именовании Microsoft.

это то, что вы имели в виду?

причина, вероятно, в том, что было бы слишком трудно иметь дело с файлами с этими символами в них в старом command.com shell, например ? также означает любой один символ, * также означает, файлам и т. д.

вместо того, чтобы учить всех, как обращаться с этими особыми случаями, они запретили это, упростив сценарий.

не было бы Эквиваленты Unicode для этих символов, и если бы был эквивалент, он все равно не решил бы эту проблему: существующий ASCII ? и * все равно придется работать как подстановочные знаки, иначе всем придется переписывать свои сценарии.

2
отвечен Mikel 2023-03-14 06:19

вы можете использовать следующий Unicode, который выглядит похожим на оригинальный без риска

они действительны как имя windows:

  • " (U+00AB) вместо < (меньше)
  • " (U+00BB) вместо > (больше)
  • ։ (U+0589 или ÷ (U+00F7) и ‡ (U+2021) вместо : (двоеточие)
  • " (U+201C) вместо " (double quote)
  • ⁄ (U+2044) insteaf of / (косая черта)
  • ∖ (U+2216) или \ (U+FF3C) или 〵 (U+3035) вместо \ (обратная косая черта)
  • ¦ (U+00A6) вместо | (вертикальная черта или труба)
  • ‽ (U+203D) ⁇ (U+2047) ¿(U+00BF) вместо ? (знак вопроса)
  • ☀ (U+2600) вместо * (звездочка)

NB: The таблица Юникод пусть вы ищете характер по описанию (например, римский), фактический характер, а также дать в качестве ссылки другие символы, связанные (глядя то же самое)

пожалуйста, найдите ниже действительное имя файла (скопируйте и вставьте, чтобы попробовать; работает под windows 7 с Windows explorer и отображается правильно, извините, не удается добавить скриншот). Вы заметите, что внешний вид отличается под окнами, чем внутри браузера (Изменение font)

Юникод 一 ☀ ¦ " ։∖ ‡〵 ÷╲ ‽ ⁇ ‰ ‰ π π ∞"≈.txt


пару ссылок

  1. www.theasciicode.com.ar/extended-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/what-character-to-use-to-put-an-item-at-the-end-of-an-alphabetic-list

NB: Windows совместим с Posix с 1980 года (согласно Википедии), поэтому он соответствует posix RFC, включая тот, который указывает имена файлов Этот ответ на stack exchange дайте более широкий контекст вокруг RFC и какие символы разрешены в именах файлов

2
отвечен sysarchitek 2023-03-14 08:36

Вы можете использовать эти символы сейчас. Но я предполагаю, что вы имеете в виду, что операционная система автоматически транслитерирует между вопросительным знаком ASCII, например, и двойником, таким как ﹖ (SMALL QUESTION MARK - UFE56). Я действительно не думаю, что это удовлетворительно, тем более что Linux и другие, где единственными недопустимыми символами для имен файлов являются Слэш (/) и null (ASCII 0), принять эти символы легко.

читайте далее:

1
отвечен Dennis Williamson 2023-03-14 10:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх