cygwin の「Bash Prompt Here」がウムラウトで動作しない

cygwin の「Bash Prompt Here」がウムラウトで動作しない

chereパスの任意の位置にドイツ語のウムラウトが含まれている場合、cygwin パッケージと共にインストールされる Windows エクスプローラーのコンテキスト メニュー エントリ「Bash プロンプトをここに表示」は機能しません。たとえば、これを に使用するとc:/temp/ö、Bash プロンプトが で開きますc:/tempが、cmdパスにウムラウトが含まれていてもプロンプトを開くことはできます。

この問題を解決するにはどうすればよいですか?

ご参考までに:

  1. 作成されたレジストリエントリはc:\opt\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "%L"(拡張コンテキストメニューでは「%L」は「%V」に置き換えられますが、これも機能しません)
  2. cygwin でのロケール設定:LANG=de_DE.UTF-8
  3. ファイルシステムは NTFS です。したがって、ファイル名は、それぞれのドキュメントで何を意味するにせよ、「Unicode」で保存されるとされています (Windows Dev Center のファイル名のエンコードの説明
  4. CMD ウィンドウのコードページ: 850 (PowerShell コマンドによる[System.Text.Encoding]::Default)
  5. Windows コードページ: 1252
  6. 3つのプログラム(Windowsエクスプローラー、cmd.exe、minttyのbash)は、エンコードが異なっていても、ウムラウトを一貫して表示します。
  7. ファイル名を変更することはできません。この問題は主に、a) 多数のリンク (シンボリックおよび Windows ショートカット) によって参照され、b) 複数の異なるユーザーによって所有/共有されているフォルダー/ファイルを含むネットワーク ドライブで発生します。

答え1

CMDウィンドウのコードページが850の場合、ファイル名の文字は1バイトであり、有効なUTF-8シーケンスではありません。システムはおそらく不明なグリフ�しかし、何も表示されないことは、それほど奇妙でも、予想外でも、変なことでもありません。

簡単な修正方法は、これを無視することです。少し難しい修正方法は、システムをどこでも Unicode にアップグレードすることです。すべてのファイルの名前を適切な Unicode 名に変更し、CMD ウィンドウも cp65001 を使用するように設定します (Windows ユーザーではないので、方法は聞かないでください。Windows のデフォルト コード ページも変更する必要があるかどうかはわかりません)。

答え2

最終的に、私は mintty 開発者自身から助けを得て、適切なドキュメント (mintty-wiki:https://github.com/mintty/mintty/wiki/Tips#mintty のフォルダー コンテキスト メニュー エントリの作成)。それによると、chere によって作成されたコンテキスト メニュー エントリは、ディレクトリ名に非 ASCII 文字が含まれていると機能しません。

ただし、この問題は、mintty コマンドに追加のパラメータを指定するだけで軽減できます。このコマンドは、xhere スクリプトを必要とせずにタスク自体を処理できます。したがって、コンテキスト メニューのエントリは と交換できますC:\cygwin64\bin\mintty.exe --dir "%1" /bin/bash。それぞれのエントリは正常に動作するようになりました。

答え3

この問題およびそれに関連するあらゆる問題を回避するため。

16 進コードの文字のみを使用してください...

2d、ダッシュ
30-39、数字
41-5a、大文字 AZ
5f、下線文字
61-7a 小文字 az

... ファイル名は以下の表から選択します。

その他のことは、最終的にはトラブルの原因になります。たとえば、ある時点で異なる OS 間でファイルを移動する場合 (ネットワーク共有やポータブル ディスク上など) などです。

--- HEX/DEC コード文字表 ---
ECMA-ラテン1 ~ ISO 8859-1

       0 1 2 3 4 5 6 7 8 9 エイビーシーディー
       - - - - - - - - - - - - - - - -
 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: ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

関連情報