From: usa@... Date: 2014-10-22T15:50:12+00:00 Subject: [ruby-dev:48685] [ruby-trunk - Bug #10417] [Open] IO#set_encoding without int_enc doesn't keep current internal encoding Issue #10417 has been reported by Usaku NAKAMURA. ---------------------------------------- Bug #10417: IO#set_encoding without int_enc doesn't keep current internal encoding https://bugs.ruby-lang.org/issues/10417 * Author: Usaku NAKAMURA * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 * ruby -v: - * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- bugかfeatureか迷ったんですが、とりあえずbugで。 `IO#set_encoding`を1引数で呼び出したとき、つまりexternal encodingのみを指定した場合、internal encodingは`nil`が指定されたとみなされ、`Encoding.default_inernal`が設定されます。 従って、もともとこのIOにinternal encodingが設定されていた場合、それが上書きされてしまいます。 internal encodingを指定せずに呼び出した場合は、現在の値を保持すべきではないでしょうか? -- https://bugs.ruby-lang.org/