質問: RubyのSound.play関数を使っているのですが、以下のように全角文字を含むパスを指定すると「PlaySound: No such file or directory (Errno::ENOENT)」というエラーが発生して音が再生出来ません。 【test.rb】 require "win32/sound" include Win32 Sound.play('z:/テスト/テスト.wav') 指定したパスに、テスト.wav は存在しています。 また、irb に上記のコマンドを打ち込むとエラーが発生せずに音を再生することができて、何が違うのか悩んでいます。 コード以外の情報としては、以下のような環境と設定で実行しています。 ■エディター:Sublime Text3.1.1 ■OS:Windows10 64bit ■ファイルの文字コードなど ・UTF-8 ・BOM無し ・改行コード:CRLF もし原因が分かる方がいれば、回答いただけますと大変ありがたいです。
回答: シングルバイト圏で作られたソフトウェアがマルチバイト文字や空白を含むファイル名やディレクトリ名に対応できていないと思った方が、建設的な方向にエネルギーを費やせます。地雷を踏む危険も少ないです。