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입니다. 따라서 파일 이름은 해당 문서에서 의미하는 바에 관계없이 "유니코드"로 저장된다고 주장됩니다(파일 이름 인코딩에 대한 Windows 개발자 센터 설명)
  4. CMD 창의 코드페이지: 850(powershell 명령에 따라 [System.Text.Encoding]::Default)
  5. Windows 코드페이지: 1252
  6. 세 가지 프로그램(windows explorer, cmd.exe, bash in mintty) 모두 다른 인코딩에도 불구하고 일관된 방식으로 움라우트를 표시합니다.
  7. a) 많은 링크(기호 및 Windows 바로 가기)에서 참조되고 b) 여러 다른 사용자가 소유/공유하는 폴더/파일이 있는 네트워크 드라이브에서 주로 문제가 발생하므로 파일 이름을 바꿀 수 없습니다.

답변1

CMD 창의 코드 페이지가 850인 경우 파일 이름의 문자는 유효한 UTF-8 시퀀스가 ​​아닌 단일 바이트입니다. 시스템은 아마도 다음을 표시할 수 있습니다.알 수 없는 문자 �하지만 아무것도 표시하지 않는 것이 실제로 이상하거나 예상치 못한 것이거나 이상한 것은 아닙니다.

간단한 해결 방법은 이를 무시하는 것입니다. 약간 덜 간단한 해결책은 시스템을 모든 곳에서 유니코드로 업그레이드하는 것입니다. 적절한 유니코드 이름을 갖도록 모든 파일의 이름을 바꾼 다음 cp65001도 사용하도록 CMD 창을 설정합니다(Windows 사용자가 아니므로 방법을 묻지 마십시오. Windows 기본 코드 페이지도 변경해야 하는지 잘 모르겠습니다).

답변2

마침내 나는 mintty 개발자로부터 직접 도움을 받게 되었고, 그는 친절하게 나에게 적절한 문서를 알려 주었습니다(mintty-wiki:https://github.com/mintty/mintty/wiki/Tips#creating-a-folder-context-menu-entry-for-mintty). 이에 따르면 chere로 생성된 상황에 맞는 메뉴 항목은 디렉토리 이름의 비ASCII 문자에서는 작동하지 않습니다.

그러나 이 문제는 xhere 스크립트 없이도 작업 자체를 처리할 수 있는 mintty 명령에 추가 매개변수를 제공함으로써 간단하게 완화될 수 있습니다. 따라서 상황에 맞는 메뉴 항목은 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 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: ° ± ² ³ ´ µ ¶ · ¸ 1 º » ¼ ½ ½ ¿
12/c: À Á Â Ã ä Å Æ Ç È É ä Ë Ì Í Î Ï
13/d: Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
14/e: à á ã ä å æ ç è é ê ë ì í î ï
15/f: ð ñ ò ó ô õ ö ¼ ø ù ú û ü ý þ ÿ

관련 정보