From: eregontp@... Date: 2017-01-11T13:48:50+00:00 Subject: [ruby-core:79055] [Ruby trunk Feature#13124] Should #puts convert to external encoding? Issue #13124 has been reported by Benoit Daloze. ---------------------------------------- Feature #13124: Should #puts convert to external encoding? https://bugs.ruby-lang.org/issues/13124 * Author: Benoit Daloze * Status: Open * Priority: Normal * Assignee: * Target version: 2.5 ---------------------------------------- For instance: puts "?\x00\x42\x30".force_encoding(Encoding::UTF_16LE) ?B0 puts "?\x00\x42\x30".force_encoding(Encoding::UTF_16LE).encode("utf-8") ?��� The first result is surprising to me. It seems to treat the String as raw bytes and just "assume" they are displayable in the external encoding. Should #puts re-encode the String to print in Encoding.default_external or the locale encoding? STDOUT.set_encoding(Encoding.find("locale")) seems to do what I expect, but should that be the default? -- https://bugs.ruby-lang.org/ Unsubscribe: