Por que o Unicode não é usado para caracteres reservados do sistema de arquivos?

Por que o Unicode não é usado para caracteres reservados do sistema de arquivos?

Eu realmente gostaria de usar caracteres como "?" no Windows para nomes de arquivos. Eu entendo por que eles são reservados, mas por que não o fizeram ou irão contornar isso usando caracteres Unicode que parecem iguais, mas (obviamente) têm códigos Unicode diferentes?

Acho que é perfeitamente possível, mas se não, por quê?

Responder1

Acho que a razão pela qual não são é o potencial de causar confusão. Se você tiver um caractere parecido com um "?" mas tem um código Unicode diferente - como você saberá a diferença?

Como você explicaria isso para alguém? "Você não pode ter um ponto de interrogação no nome do arquivo, mas pode ter algo que parece um ponto de interrogação, mas não é, e para digitá-lo você só precisa usar este 5 -combinação de teclas."?

Melhor (na minha opinião) excluí-los completamente e evitar erros.

Responder2

Os caracteres que não são permitidos em um nome de arquivo são:

  • <(menor que)
  • >(Maior que)
  • :(cólon)
  • "(citação dupla)
  • /(barra)
  • \(barra invertida)
  • |(barra vertical ou tubo)
  • ?(ponto de interrogação)
  • *(asterisco)

de acordo comConvenções de nomenclatura da Microsoft.

Era a isso que você estava se referindo?

A razão é provavelmente porque seria muito difícil lidar com arquivos com esses caracteres no command.comshell antigo, por exemplo, ?também significa qualquer caractere, *também significa qualquer arquivo, etc.

Em vez de ensinar a todos como lidar com esses casos especiais, eles proibiram isso, facilitando a elaboração do roteiro.

Não haveria equivalentes Unicode para esses caracteres, e se houvesse um equivalente, ainda não resolveria esse problema: o ASCII existente ?e *ainda teria que funcionar como curingas, caso contrário todos teriam que reescrever seus scripts.

Responder3

Você pode usar o seguinte Unicode, que é semelhante ao original, sem riscos

Eles são válidos como nome do Windows:

Obs: OTabela Unicodepermite pesquisar caracteres por descrição (como romano), o caractere real e também fornecer como referência outros caracteres relacionados (com a mesma aparência)

Encontre abaixo o nome do arquivo válido (copie e cole para experimentar; funciona no Windows 7 com o Windows Explorer e é exibido corretamente, desculpe, não é possível adicionar a captura de tela). Você notará que a aparência é diferente no Windows e dentro do navegador (mudança de fonte)

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


Algumas referências

  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: O Windows é compatível com Posix desde 1980 (de acordo com a Wikipedia), portanto, está em conformidade com RFCs posix, incluindo aquele que especifica nomes de arquivos.resposta na troca de pilhafornece um contexto mais amplo sobre RFC e quais caracteres são permitidos em nomes de arquivos

Responder4

Você mesmo pode usar esses personagens agora. Mas presumo que você pretenda fazer com que o sistema operacional translitere automaticamente entre um ponto de interrogação ASCII, por exemplo, e um semelhante como ﹖ ( SMALL QUESTION MARK- UFE56). Eu realmente não acho que isso seja satisfatório, especialmente porque o Linux e outros, onde os únicos caracteres inválidos para nomes de arquivos são barra ( /) e nulo (ASCII 0), aceitam esses caracteres prontamente.

Leitura adicional:

informação relacionada