2011-05-04 39 views
1

我创造了这个红宝石(1.9.2)代码和最后一行失败:有什么办法可以让FileUtils使用UTF-8文件名?

File.open("test äöü.txt", "w+").close 
File.chmod(0644, "test äöü.txt") 
FileUtils.chmod(0644, "test äöü.txt") # FAILS 

的消息是:

变量Errno :: ENOENT(没有这样的文件或目录 - C:/ ... /测试├ñ├Â├╝.txt):

Althoug的FileUtil.chmod电话File.chmod最终,由于某种原因,与沿途的文件名食堂。

通常我只是使用File而不是FileUtils,但不幸的是我使用了一个使用FileUtils的宝石,我希望我可以避免更改宝石来源。

有谁知道为什么会发生这种情况? FileUtils.chmod的来源看起来很简单,但我仍然无法弄清楚问题所在。有没有什么办法可以修补FileUtils以使其工作?

谢谢。

+0

你的'ruby -v'是什么?对于我在OS X上使用'ruby 1.9.2p180(2011-02-18)[x86_64-darwin10.6.0]''没问题。看起来像只有Windows的错误。 – 2011-05-04 20:27:52

+0

它是'ruby 1.9.2p180(2011-02-18)[i386-mingw32]' – 2011-05-04 20:29:48

回答

1

它似乎是一个Windows唯一的问题,与issue 1685有关。

希望有人对编码问题有很好的理解& windows可以启发你直到解决问题才能做什么。

+0

似乎'File.path'与此有关:'File.path(“testäöü.txt”)''返回''测试├'├Â├╝.txt“'。 (因为'FileUtils.chmod'正在使用'File.path' ...) – 2011-05-05 06:54:53

相关问题