[ruby-dev:47875] Re: [Mac OS X] Dir.glob で取得したファイル名のバイト列が異なる

From: "NARUSE, Yui" <naruse@...>
Date: 2014-01-09 00:53:12 UTC
List: ruby-dev #47875
端的には仕様変更です。
長大な議論の果てに変更されたわけなのですが、詳細をすぐには思い出せないので、
さしあたっては http://bugs.ruby-lang.org/issues/7267 を御覧ください。
解説が必要でしたら解説します。

2014年1月3日 16:33 Watson <watson1978@gmail.com>:
> 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



-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread