
Issue #19902 has been updated by nobu (Nobuyoshi Nakada). https://github.com/ruby/ruby/pull/8511 ---------------------------------------- Bug #19902: strftimeの返り値のascii_only?が間違っていることがある https://bugs.ruby-lang.org/issues/19902#change-104756 * Author: znz (Kazuhiro NISHIYAMA) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- ruby-jp slack で tompng さんの調査によると以下のように `Regexp.esacpe` が変になる原因は `t.ascii_only? #=> true` になっていることでした。 ``` irb(main):053> t = Time.now.strftime(u='あ') => "あ" irb(main):054> t==u => true irb(main):055> t.encoding==u.encoding => true irb(main):056> Regexp.escape(t) => "\xE3\x81\x82" irb(main):057> Regexp.escape(u) => "あ" ``` git bisect で `make miniruby && ./miniruby -ve "p Time.now.strftime('%Y年').ascii_only?"` をしつつ調べてみると、https://github.com/ruby/ruby/commit/f34280ec6b684eeb21ef3336c7002e1a83dcfd2c から `true` になってしまっているようです。 -- https://bugs.ruby-lang.org/