From: "nagachika (Tomoyuki Chikanaga)" Date: 2013-03-09T22:34:24+09:00 Subject: [ruby-dev:47151] [Backport 200 - Backport #7911] 特定の条件の時に、File.fnmatchに渡すpatternがUS-ASCII、pathがUTF-8だとInvalid sequenceでエラーが出る Issue #7911 has been updated by nagachika (Tomoyuki Chikanaga). Assignee changed from mame (Yusuke Endoh) to nagachika (Tomoyuki Chikanaga) ---------------------------------------- Backport #7911: 特定の条件の時に、File.fnmatchに渡すpatternがUS-ASCII、pathがUTF-8だとInvalid sequenceでエラーが出る https://bugs.ruby-lang.org/issues/7911#change-37428 Author: grafi (Shunsuke Shimizu) Status: Assigned Priority: Normal Assignee: nagachika (Tomoyuki Chikanaga) Category: Target version: =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/