如何运行路径包含非ASCII符号的Ruby文件?

时间:2012-01-15 00:27:51

标签: ruby windows

运行d:\ruby\test.rb总是成功的。

运行d:\программирование\test.rb处于此文件路径的副本失败,显然是因为它包含非ASCII,在这种情况下是西里尔文符号:

No such file or directory - D:\... (Errno::ENOENT)

我该怎么做才能让它发挥作用?

我使用的是Ruby 1.9和Windows。

1 个答案:

答案 0 :(得分:1)

如果您要创建路径,请执行以下操作:

"d:\программирование\test.rb"

然后Ruby正在处理“\ t”字符,好像是被转义:在将文件名传递给任何例程之前,它将\t转换为选项卡。该字符在文件名中是非法的。好吧,也许不是非法的,但真的很难处理,而不是你期望的。

相反,请使用:

'd:\программирование\test.rb'

或者,更好的是,当您定义名称时,让Ruby执行提升并反转反斜杠。 Ruby应该做正确的事情并为您实时转换它们:

"d:/программирование/test.rb"