[#47135] [ruby-trunk - Feature #8024][Assigned] Lazy sweep を on/off するための機能 — "mrkn (Kenta Murata)" <muraken@...>

16 messages 2013/03/06

[ruby-dev:47151] [Backport 200 - Backport #7911] 特定の条件の時に、File.fnmatchに渡すpatternがUS-ASCII、pathがUTF-8だとInvalid sequenceでエラーが出る

From: "nagachika (Tomoyuki Chikanaga)" <nagachika00@...>
Date: 2013-03-09 13:34:24 UTC
List: ruby-dev #47151
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 `<main>' 

というエラーが発生します。UTF-8文字列である'あ'を、'a'と同じUS-ASCIIだとしてcase insenstiveなマッチのためにupcaseを試みているのがエラー原因と思われます。

添付のパッチで動作するようになることを確認しました。
=end




-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next