Cygwin „Bash Prompt Here“ funktioniert nicht mit Umlauten

Cygwin „Bash Prompt Here“ funktioniert nicht mit Umlauten

Die Verwendung des mit dem Cygwin-Paket installierten Windows Explorer-Kontextmenüeintrags „Bash-Eingabeaufforderung hier“ cherefunktioniert nicht, wenn der Pfad an irgendeiner Stelle einen deutschen Umlaut enthält. Beispiel: Die Verwendung für c:/temp/öführt zu einer in geöffneten Bash-Eingabeaufforderung c:/temp, während das Öffnen einer cmdEingabeaufforderung auch mit Umlauten im Pfad funktioniert.

Wie löse ich dieses Problem?

Zu Ihrer Information:

  1. erstellter Registry-Eintrag ist c:\opt\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "%L"(im erweiterten Kontextmenü wird "%L" durch "%V" ersetzt; das funktioniert aber auch nicht)
  2. Gebietsschemaeinstellungen in Cygwin:LANG=de_DE.UTF-8
  3. Das Dateisystem ist NTFS. Daher wird behauptet, dass Dateinamen in "Unicode" gespeichert sind, was auch immer dies in der jeweiligen Dokumentation bedeutet (Windows Dev Center-Beschreibung der Kodierung für Dateinamen)
  4. Codepage im CMD-Fenster: 850 (gemäß Powershell-Befehl [System.Text.Encoding]::Default)
  5. Windows-Codepage: 1252
  6. Alle drei Programme (Windows Explorer, cmd.exe, Bash in Mintty) zeigen die Umlaute trotz unterschiedlicher Kodierung einheitlich an
  7. Das Umbenennen von Dateien ist nicht möglich, da das Problem hauptsächlich auf Netzlaufwerken mit Ordnern/Dateien auftritt, die a) durch viele Links (symbolische sowie Windows-Verknüpfungen) referenziert werden und b) mehreren verschiedenen Benutzern gehören/von ihnen gemeinsam genutzt werden

Antwort1

Wenn die Codepage im CMD-Fenster 850 ist, dann ist das Zeichen im Dateinamen ein einzelnes Byte, das keine gültige UTF-8-Sequenz ist. Das System könnte wahrscheinlich eineunbekannte Glyphe �aber es ist nicht wirklich seltsam, unerwartet oder merkwürdig, dass stattdessen überhaupt nichts angezeigt wird.

Die einfache Lösung besteht darin, es zu ignorieren. Die etwas weniger einfache Lösung besteht darin, Ihr System überall auf Unicode umzustellen. Benennen Sie alle Dateien um, damit sie richtige Unicode-Namen haben, und richten Sie dann das CMD-Fenster so ein, dass es auch cp65001 verwendet (ich bin kein Windows-Benutzer, also fragen Sie mich nicht, wie das geht. Ich bin nicht sicher, ob Sie auch die Windows-Standardcodepage ändern müssen).

Antwort2

Schließlich bekam ich Hilfe vom Mintty-Entwickler selbst, der mich freundlicherweise auf die entsprechende Dokumentation verwies (Mintty-Wiki:https://github.com/mintty/mintty/wiki/Tips#creating-a-folder-context-menu-entry-for-mintty). Demzufolge funktionieren die von chere erstellten Kontextmenüeinträge NICHT mit Nicht-ASCII-Zeichen in Verzeichnisnamen.

Das Problem lässt sich jedoch einfach dadurch beheben, dass dem mintty-Befehl ein zusätzlicher Parameter bereitgestellt wird, der die Aufgabe selbst erledigen kann, ohne dass das xhere-Skript erforderlich ist. Der Kontextmenüeintrag kann also einfach durch ersetzt werden C:\cygwin64\bin\mintty.exe --dir "%1" /bin/bash. Der entsprechende Eintrag funktioniert nun einwandfrei.

Antwort3

Um dieses Problem und alles, was damit zusammenhängt, zu vermeiden.

Verwenden Sie nur Zeichen mit Hex-Codes ...

2d, Bindestrich
30-39, Ziffern
41-5a, Großbuchstaben AZ
5f, Unterstrich
61-7a Kleinbuchstaben az

... aus der folgenden Tabelle in Dateinamen.

Alles andere kann früher oder später zu Problemen führen, beispielsweise wenn Sie Dateien irgendwann zwischen verschiedenen Betriebssystemen verschieben (... auf Netzwerkfreigaben und tragbaren Datenträgern).

--- HEX/DEC-codierte Zeichentabelle ---
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: @ ABCDEFGHIJKLMNO
 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: ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

verwandte Informationen