¿Por qué Unicode no se utiliza para los caracteres reservados del sistema de archivos?

¿Por qué Unicode no se utiliza para los caracteres reservados del sistema de archivos?

Realmente me gustaría usar caracteres como "?" en Windows para nombres de archivos. Entiendo por qué están reservados, pero ¿por qué no lo han hecho o alguna vez lo evitarán utilizando caracteres Unicode que parecen iguales pero (obviamente) tienen códigos Unicode diferentes?

Creo que es completamente posible, pero si no, ¿por qué?

Respuesta1

Creo que la razón por la que no lo son es por el potencial de causar confusión. Si tienes un carácter que parece un "?" pero tiene un código Unicode diferente. ¿Cómo notarás la diferencia?

¿Cómo se lo explicarías a alguien? "No puedes tener un signo de interrogación en tu nombre de archivo, pero puedes tener algo que parezca un signo de interrogación pero no lo sea, y para escribirlo solo necesitas usar este 5 -combinación de teclas."?

Es mejor (en mi opinión) excluirlos por completo y evitar errores.

Respuesta2

Los caracteres que no están permitidos en un nombre de archivo son:

  • <(menos que)
  • >(mas grande que)
  • :(colon)
  • "(comilla doble)
  • /(barra inclinada)
  • \(barra invertida)
  • |(barra o tubo vertical)
  • ?(signo de interrogación)
  • *(asterisco)

de acuerdo aConvenciones de nomenclatura de Microsoft.

¿Es eso lo que usted se refería?

La razón probablemente sea porque sería demasiado difícil tratar con archivos con esos caracteres en el command.comshell antiguo, por ejemplo, ?también significa cualquier carácter, *también significa cualquier archivo, etc.

En lugar de enseñar a todos cómo manejar esos casos especiales, lo rechazaron, lo que facilitó la creación de guiones.

No habría equivalentes Unicode para esos caracteres, y si hubiera un equivalente, aún así no resolvería ese problema: el ASCII existente ?y *aún tendría que funcionar como comodín; de lo contrario, todos tendrían que reescribir sus scripts.

Respuesta3

Puede utilizar el siguiente Unicode que se parece al original sin riesgo

Son válidos como nombre de Windows:

  • « (U+00AB) en lugar de < (menor que)
  • » (U+00BB) en lugar de > (mayor que)
  • ։ (U+0589o ÷ (U+00F7) o ‡ (U+2021) en lugar de : (dos puntos)
  • “ (U+201C) en lugar de " (comillas dobles)
  • ⁄ (U+2044) en lugar de / (barra diagonal)
  • ∖ (U+2216) o \ (U+FF3C) o 〵 (U+3035) en lugar de \ (barra invertida)
  • ¦ (U+00A6) en lugar de | (barra o tubo vertical)
  • ‽ (U+203D) ⁇ (U+2047) ¿(U+00BF) en lugar de ? (signo de interrogación)
  • ☀ (+2600) en lugar de * (asterisco)

Nota: Eltabla Unicodete permite buscar personaje por descripción (como romano), el personaje real y también dar como referencia otros personajes relacionados (que se ven iguales)

Encuentre a continuación un nombre de archivo válido (copie y pegue para probarlo; funciona en Windows 7 con el Explorador de Windows y se muestra correctamente, lo siento, no puedo agregar una captura de pantalla). Notarás que el aspecto es diferente en Windows que dentro de un navegador (cambio de fuente)

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


Un par de referencias

  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 es compatible con Posix desde 1980 (según Wikipedia), por lo que cumple con los RFC de Posix, incluido el que especifica nombres de archivos.respuesta en el intercambio de pilabrindar un contexto más amplio sobre RFC y qué caracteres están permitidos en los nombres de archivos

Respuesta4

Puedes usar esos personajes ahora tú mismo. Pero supongo que quiere que el sistema operativo translitere automáticamente entre un signo de interrogación ASCII, por ejemplo, y uno parecido como ﹖ ( SMALL QUESTION MARK- UFE56). Realmente no creo que sea satisfactorio, especialmente porque Linux y otros, donde los únicos caracteres no válidos para los nombres de archivos son barra diagonal ( /) y nulo (ASCII 0), aceptan esos caracteres fácilmente.

Otras lecturas:

información relacionada