[英]Cygpath and accents (àèìòù)
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
我在 Win 10 上使用 Cygpath 2.6.0。
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=
據我所知,在阿德里安回答之后,我認為問題在於我試圖在不運行 cygwin bash 的情況下使用 cygpath,因為使用它我沒有任何問題。
$ cygpath --absolute -C UTF8 "C:\foo\àèò\foo2"
/cygdrive/c/foo/àèò/foo2
但是我需要不用bash直接使用cygpath,你覺得有辦法嗎?
你運行什么版本的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.35
在mintty.exe
(Cygwin的), cmd.exe
和Powershell的。cygpath-2.6.0
在mintty.exe
(Cygwin的)和Powershell的。不起作用:
cmd.exe
cygpath-2.6.0
這似乎與引用有關,並且有一個解決方法。 指定不帶引號的路徑會產生正確的結果:
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
-shell 之外運行Cygwin
應用程序,但由於這在我說這是一個錯誤之前有效,因此您應該將其發布到他們的郵件列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.