2016-10-09 26 views
1

cygpath似乎沒有正確處理帶有重音符號的路徑,例如,Cygpath和口音(àèìòù)

C:\cygwin64\bin>cygpath --absolute -C UTF8 "C:\foo\àòè\foo2" 

打印

/usr/bin/"C:/foo/àòè/foo2" 

,而我希望:

/cygdrive/c/foo/àòè/foo2 

同樣的路徑,而不口音產生預期的結果:

C:\cygwin64\bin>cygpath --absolute -C UTF8 "C:\foo\aoe\foo2" 
/cygdrive/c/foo/aoe/foo2 

難道我做錯了什麼?

------ 編輯1

我使用Cygpath 2.6.0在Win 10

C:\cygwin64\bin>cygpath --version 
cygpath (cygwin) 2.6.0 
Path Conversion Utility 
Copyright (C) 1998 - 2016 Cygwin Authors 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

C:\cygwin64\bin>locale 
LANG= 
LC_CTYPE="C.UTF-8" 
LC_NUMERIC="C.UTF-8" 
LC_TIME="C.UTF-8" 
LC_COLLATE="C.UTF-8" 
LC_MONETARY="C.UTF-8" 
LC_MESSAGES="C.UTF-8" 
LC_ALL= 

據我看到的,阿德里安的回答後,我認爲,問題是我試圖使用cygpath而不運行cygwin bash,因爲使用它我沒有任何問題。

$ cygpath --absolute -C UTF8 "C:\foo\àèò\foo2" 
/cygdrive/c/foo/àèò/foo2 

但我需要使用cygpath直接沒有bash,你認爲有一種方法嗎?

+0

對於我來說,它也可以在Windows 10的Windows終端('cmd.exe')中直接使用'mintty' /'bash'。 –

+0

剛安裝了cygwin 32bit和cmd.exe,我遇到了同樣的問題。我剛剛嘗試過PowerShell,它的工作原理。我真的不知道是怎麼想的。 – Polletto

+0

現在可以確認,看到我更新的答案。 –

回答

0

Cygwin/cygpath你運行什麼版本?我不能重複這樣的:

$ cygpath --absolute -C UTF8 "C:\foo\àòè\foo2" 
/cygdrive/c/foo/àòè/foo2 

$ cygpath --version 
cygpath (cygwin) 1.7.35 
Path Conversion Utility 
Copyright (C) 1998 - 2015 Red Hat, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

$ locale 
LANG=en_US.UTF-8 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_ALL=en_US.UTF-8 

編輯

作品:

  • cygpath-1.7.35mintty.exe(Cygwin的),cmd.exe和PowerShell。
  • cygpath-2.6.0 in mintty.exe(Cygwin)and Powershell。

不起作用:

  • cygpath-2.6.0cmd.exe

這似乎與報價和有解決方法。指定的路徑不帶引號得到正確的結果:

c:\cygwin\bin>cygpath --absolute -C UTF8 'C:\foo\àèò\foo2' 
/cygdrive/c/cygwin/bin/'C:/foo/àèò/foo2' 

c:\cygwin\bin>cygpath --absolute -C UTF8 C:\foo\àèò\foo2 
/cygdrive/c/foo/àèò/foo2 

我不知道是否/的Cygwin開發者如何支持運行Cygwin應用Cygwin - 殼外,但因爲這個工作之前,我會說這是一個錯誤,你應該把它發佈到他們的郵件列表中。

+0

與2.6.0版本相同 – matzeri