From: usa@... Date: 2018-03-28T05:51:10+00:00 Subject: [ruby-dev:50515] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる Issue #14388 has been updated by usa (Usaku NAKAMURA). Backport changed from 2.3: REQUIRED, 2.4: DONE, 2.5: DONE to 2.3: DONE, 2.4: DONE, 2.5: DONE ruby_2_3 r62946 merged revision(s) 62040. ---------------------------------------- Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる https://bugs.ruby-lang.org/issues/14388#change-71273 * 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: DONE, 2.4: DONE, 2.5: DONE ---------------------------------------- ~~~ ruby data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" p data.encoding #=> # 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/