From: "ko1 (Koichi Sasada)" Date: 2013-02-23T02:46:49+09:00 Subject: [ruby-dev:47069] [ruby-trunk - Bug #7911] 特定の条件の時に、File.fnmatchに渡すpatternがUS-ASCII、pathがUTF-8だとInvalid sequenceでエラーが出る Issue #7911 has been updated by ko1 (Koichi Sasada). Category set to M17N Assignee set to naruse (Yui NARUSE) Target version set to 2.1.0 naruse さんに 2.1.0 として振りますが、2.0.0 に必要かどうかはご判断下さい。 ---------------------------------------- Bug #7911: 特定の条件の時に、File.fnmatchに渡すpatternがUS-ASCII、pathがUTF-8だとInvalid sequenceでエラーが出る https://bugs.ruby-lang.org/issues/7911#change-36801 Author: grafi (Shunsuke Shimizu) Status: Open Priority: Normal Assignee: naruse (Yui NARUSE) Category: M17N Target version: 2.1.0 ruby -v: ruby 2.0.0dev (2013-02-22 trunk 39383) [x86_64-darwin12.2.1] =begin # coding: utf-8 File.fnmatch('a'.encode('US-ASCII'), 'あ', File::FNM_CASEFOLD) というコードを実行した際に、 test-fnmatch.rb:2:in `fnmatch': invalid byte sequence in US-ASCII (ArgumentError) from test-fnmatch.rb:2:in `
' というエラーが発生します。UTF-8文字列である'あ'を、'a'と同じUS-ASCIIだとしてcase insenstiveなマッチのためにupcaseを試みているのがエラー原因と思われます。 添付のパッチで動作するようになることを確認しました。 =end -- http://bugs.ruby-lang.org/