Issue #14388 has been updated by naruse (Yui NARUSE). Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE ruby_2_5 r62483 merged revision(s) 62040. ---------------------------------------- Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる https://bugs.ruby-lang.org/issues/14388#change-70427 * Author: tommy (Masahiro Tomita) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux] * Backport: 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE ---------------------------------------- ~~~ ruby data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" p data.encoding #=> #<Encoding:UTF-8> p data #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" p data.valid_encoding? #=> false data2 = data[1..-1] p data2 #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" p data2.valid_encoding? #=> false data3 = data2 + "" p data3.valid_encoding? #=> true ~~~ data は invalid ですが、data から切り出した data2 は valid のはずです。 末尾に空文字列を追加すると valid になります。 -- https://bugs.ruby-lang.org/