运行d:\ruby\test.rb
总是成功的。
运行d:\программирование\test.rb
处于此文件路径的副本失败,显然是因为它包含非ASCII,在这种情况下是西里尔文符号:
No such file or directory - D:\... (Errno::ENOENT)
我该怎么做才能让它发挥作用?
我使用的是Ruby 1.9和Windows。
答案 0 :(得分:1)
如果您要创建路径,请执行以下操作:
"d:\программирование\test.rb"
然后Ruby正在处理“\ t”字符,好像是被转义:在将文件名传递给任何例程之前,它将\t
转换为选项卡。该字符在文件名中是非法的。好吧,也许不是非法的,但真的很难处理,而不是你期望的。
相反,请使用:
'd:\программирование\test.rb'
或者,更好的是,当您定义名称时,让Ruby执行提升并反转反斜杠。 Ruby应该做正确的事情并为您实时转换它们:
"d:/программирование/test.rb"