From: Watson Date: 2014-01-09T10:02:17+09:00 Subject: [ruby-dev:47876] Re: [Mac OS X] Dir.glob で取得したファイル名のバイト列が異なる ご返答ありがとうございます。 仕様変更ということなので、今後再び振る舞いが変わることがなさそうなので、 現在、私が遭遇している問題についてはこちらで対処したいと思います。 ありがとうございました。 (2014/01/09 9:53), NARUSE, Yui wrote: > 端的には仕様変更です。 > 長大な議論の果てに変更されたわけなのですが、詳細をすぐには思い出せないので、 > さしあたっては http://bugs.ruby-lang.org/issues/7267 を御覧ください。 > 解説が必要でしたら解説します。 > > 2014年1月3日 16:33 Watson : >> Ruby 2.0 までは OS X のファイル名を Dir.glob で取得したときには >> OS X ファイルシステムが返す Normalization Form D バイト列が Dir.glob で >> 取得されておりました。 >> >> Ruby 2.1 からは Normalization Form C に変換したバイト列が Dir.glob で >> 取得されるようになっているようなのですが、仕様が変わったのでしょうか? >> >> % cat test.rb >> system "touch 'が'" >> Dir.glob("*").each do |file| >> next if file == $0 >> puts "** #{file} **" >> file.each_byte do |b| >> p b >> end >> end >> >> % ruby -v test.rb >> ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13] >> ** が ** >> 227 >> 129 >> 139 >> 227 >> 130 >> 153 >> >> % ruby -v test.rb >> ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0] >> ** が ** >> 227 >> 129 >> 140 > >