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

3

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

Eu acho que é totalmente possível, mas se não, por quê?

    
por Carlos Gil 04.02.2011 / 00:24

4 respostas

2

Eu acho que a razão pela qual eles não são é por causa do potencial de causar confusão. Se você tem um personagem que parece um "?" mas tem um código unicode diferente - como você vai diferenciar?

Como você explicaria isso para alguém? "Você não pode ter um ponto de interrogação no seu nome de arquivo, mas você pode ter uma coisa 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.

    
por 04.02.2011 / 00:29
2

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

  • < (menor que)
  • > (maior que)
  • : (dois pontos)
  • " (aspas duplas)
  • / (barra)
  • \ (barra invertida)
  • | (barra ou tubo vertical)
  • ? (ponto de interrogação)
  • * (asterisco)

de acordo com Convenções de Nomenclatura da Microsoft .

É a isso que você estava se referindo?

O motivo provavelmente é porque seria muito difícil lidar com arquivos com esses caracteres neles no antigo command.com shell, 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 não permitiram isso, facilitando o script.

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

    
por 04.02.2011 / 00:55
2

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

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

NB: A tabela Unicode permite que você pesquise caractere por descrição (como roman), o caractere real e também forneça como referência outros caracteres relacionados (parecendo o mesmo)

Por favor, encontrar o nome de arquivo abaixo válido (copiar & colar para experimentá-lo; funciona no Windows 7 com o Windows Explorer e exibe corretamente, desculpe não pode adicionar screenshot). Você notará que a aparência é diferente em janelas do que dentro de um 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. link
  3. link
  4. link
  5. link
  6. link

NB: O Windows é compatível com Posix desde 1980 (de acordo com a Wikipédia), portanto, ele está em conformidade com os RFCs posix, incluindo um especificando nomes de arquivos Essa resposta na troca de pilha fornece um contexto mais amplo sobre a RFC e quais caracteres são permitidos em nomes de arquivos

    
por 27.09.2016 / 03:01
1

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

Leitura adicional:

por 04.02.2011 / 00:43