Cygpath 和口音 (àèìòù)
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=
据我所知,在 Adrian 回答之后,我认为问题是我试图在没有 运行 cygwin bash 的情况下使用 cygpath,因为使用它我没有任何问题。
$ cygpath --absolute -C UTF8 "C:\foo\àèò\foo2"
/cygdrive/c/foo/àèò/foo2
但是我需要直接使用cygpath而不需要bash,你觉得有办法吗?
你 运行 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.
无效:
cygpath-2.6.0
在 cmd.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
我不确定 if/how Cygwin
开发人员是否支持 运行ning Cygwin
Cygwin
-shell 之外的应用程序,但是自从这在我说它是一个错误之前起作用了,你应该 post 它到他们的邮件列表。
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=
据我所知,在 Adrian 回答之后,我认为问题是我试图在没有 运行 cygwin bash 的情况下使用 cygpath,因为使用它我没有任何问题。
$ cygpath --absolute -C UTF8 "C:\foo\àèò\foo2"
/cygdrive/c/foo/àèò/foo2
但是我需要直接使用cygpath而不需要bash,你觉得有办法吗?
你 运行 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.
无效:
cygpath-2.6.0
在cmd.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
我不确定 if/how Cygwin
开发人员是否支持 运行ning Cygwin
Cygwin
-shell 之外的应用程序,但是自从这在我说它是一个错误之前起作用了,你应该 post 它到他们的邮件列表。