cygwin "Bash Prompt Here" no funciona con diéresis

cygwin "Bash Prompt Here" no funciona con diéresis

El uso de la entrada del menú contextual del Explorador de Windows "Símbolo Bash aquí" que se instala con el paquete cygwin chereno funciona cuando la ruta contiene una diéresis alemana en cualquier posición. Por ejemplo: usarlo para c:/temp/öobtener resultados en un mensaje Bash abierto en c:/temp, mientras que abrir un cmdmensaje también funciona con diéresis en la ruta.

¿Cómo resuelvo este problema?

Para su información:

  1. la entrada de registro creada es c:\opt\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "%L"(en el menú contextual extendido "%L" se reemplaza por "%V"; pero esto tampoco funciona)
  2. configuración regional en cygwin:LANG=de_DE.UTF-8
  3. El sistema de archivos es NTFS. Por lo tanto, se afirma que los nombres de los archivos se almacenan en "Unicode", sea lo que sea que esto signifique en la documentación respectiva (Descripción del Centro de desarrollo de Windows sobre la codificación de nombres de archivos)
  4. Página de códigos en la ventana CMD: 850 (según el comando powershell [System.Text.Encoding]::Default)
  5. Página de códigos de Windows: 1252
  6. Los tres programas (explorador de Windows, cmd.exe, bash en mintty) muestran la diéresis de manera consistente a pesar de las diferentes codificaciones.
  7. Cambiar el nombre de los archivos no es posible ya que el problema surge principalmente en unidades de red con carpetas/archivos a) a los que se hace referencia mediante muchos enlaces (simbólicos y accesos directos de Windows) y b) que pertenecen o son compartidos por varios usuarios diferentes.

Respuesta1

Si la página de códigos en la ventana CMD es 850, entonces el carácter en el nombre del archivo es un solo byte que no es una secuencia UTF-8 válida. El sistema probablemente podría mostrar unglifo desconocido�pero no es realmente extraño, inesperado o extraño que no muestre nada en absoluto.

La solución sencilla es ignorarlo. La solución un poco menos sencilla es actualizar su sistema a Unicode en todas partes. Cambie el nombre de todos los archivos para que tengan nombres Unicode adecuados y luego configure la ventana CMD para que también use cp65001 (no soy usuario de Windows, así que no me pregunte cómo. No estoy seguro de si también necesita cambiar la página de códigos predeterminada de Windows).

Respuesta2

Finalmente terminé recibiendo ayuda del propio desarrollador de mintty, quien amablemente me indicó la documentación adecuada (mintty-wiki:https://github.com/mintty/mintty/wiki/Tips#creating-a-folder-context-menu-entry-for-mintty). Según eso, las entradas del menú contextual creadas por chere NO funcionan con caracteres que no sean ASCII en los nombres de directorio.

Sin embargo, el problema se puede mitigar simplemente proporcionando un parámetro adicional al comando mintty, que puede manejar la tarea en sí sin necesidad del script xhere. Entonces, la entrada del menú contextual puede simplemente intercambiarse por C:\cygwin64\bin\mintty.exe --dir "%1" /bin/bash. La entrada respectiva ahora funciona bien.

Respuesta3

Para evitar este problema y todo lo relacionado con él.

Utilice sólo caracteres con códigos hexadecimales...

2d, guión
30-39, números
41-5a, AZ mayúscula
5f, carácter subrayado
61-7a az minúscula

... de la siguiente tabla en nombres de archivos.

Cualquier otra cosa eventualmente será una fuente de problemas, por ejemplo, si mueve archivos entre diferentes sistemas operativos en algún momento (... en recursos compartidos de red y discos portátiles).

--- Tabla de caracteres codificados HEX/DEC ---
ECMA-Latin1 ~ ISO 8859-1

       0 1 2 3 4 5 6 7 8 9 abcdef
       - - - - - - - - - - - - - - - -
 2/2: ! "#$%&'()*+,-./
 3/3: 0 1 2 3 4 5 6 7 8 9 : ; ?
 4/4: @ABBCDEFGHIJKLMNO
 5/5: PQRSTUVWXYZ [ \ ] ^ _
 6/6: ` abcdefghijklmno
 7/7: pqrstuvwxyz { | } ~
 8/8:  
 9/9:  
10/a: ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
11/b: ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
12/c: À Á Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
13/d: Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
14/e: à á â ã ä å æ ç è é ê ë ì í î ï
15/f: ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

información relacionada