From: eregontp@... Date: 2020-07-08T10:01:35+00:00 Subject: [ruby-core:99087] [Ruby master Bug#17011] BigDecimal .to_s should not use ASCII-8BIT Issue #17011 has been updated by Eregon (Benoit Daloze). Assignee set to nobu (Nobuyoshi Nakada) Status changed from Open to Closed @nobu picked that fix in https://github.com/ruby/ruby/commit/6a826eb4b08484cb3b6279da905f5b9e03e0df5f (details at https://github.com/ruby/spec/pull/778#issuecomment-655420419) Thanks! ---------------------------------------- Bug #17011: BigDecimal .to_s should not use ASCII-8BIT https://bugs.ruby-lang.org/issues/17011#change-86459 * Author: david.drakard (David Drakard) * Status: Closed * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- `BigDecimal#to_s` returns a `String` in ASCII-8BIT encoding. This is inconvenient in situations where the encoding determines program behaviour, since ASCII-8BIT is a special encoding that implies binary (non-textual) data, it can require an explicit conversion. `BigDecimal#to_s` should either use the currently active encoding, or it should use US-ASCII like `Integer#to_s`. Recreation script: ``` ruby # encoding: utf-8 Encoding.default_internal = Encoding::UTF_8 Encoding.default_external = Encoding::UTF_8 require 'bigdecimal' puts BigDecimal('2').to_s.encoding ``` Desired output: `US-ASCII` or `UTF-8` Actual output: `ASCII-8BIT` -- https://bugs.ruby-lang.org/ Unsubscribe: